Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript String.replace()不工作,即使相同的正则表达式在其他langs中也不工作?_Javascript_Regex - Fatal编程技术网

Javascript String.replace()不工作,即使相同的正则表达式在其他langs中也不工作?

Javascript String.replace()不工作,即使相同的正则表达式在其他langs中也不工作?,javascript,regex,Javascript,Regex,我有一个textarea元素,它包含以下形式的文本: 215 00:10:38,810 --> 00:10:40,040 [ROBIN LAUGHING] 216 00:10:40,370 --> 00:10:41,330 [ALL SCREAMING] 我获取该文本并运行replace(/^[\d\s-:,>]+$/g,”),然后单击console.log记录结果。但我看到的是不变的结果,而不是任何变化 我使用Ruby'String#gsub方法在同一个文本上尝试了

我有一个textarea元素,它包含以下形式的文本:

 215
 00:10:38,810 --> 00:10:40,040
 [ROBIN LAUGHING]

 216
 00:10:40,370 --> 00:10:41,330
 [ALL SCREAMING]
我获取该文本并运行
replace(/^[\d\s-:,>]+$/g,”),然后单击console.log记录结果。但我看到的是不变的结果,而不是任何变化


我使用Ruby'
String#gsub
方法在同一个文本上尝试了相同的正则表达式,它完全符合我的要求。我对JavaScript的不同之处有点困惑

试试这个regexp
/^[\d\s\-:,>]+$/mg
而不是您使用的那个

另外,请记住.replace将保持原始字符串不变,因此您应该执行以下操作:

myString = myString.replace(/^[\d\s\-:,>]+$/mg, "");

预期产量是多少?您需要正则表达式上的多行标志吗?@GreenTriangle您知道
replace()
返回修改后的字符串,但保留原始字符串不变,对吗?您知道Javascript的
string.replace
返回字符串的修改副本,而不是修改原始字符串吗?(
gsub
也可以,但可能您使用的是
gsub!
,或者您忘记了只使用一种语言的赋值。)请注意,
-
应该始终位于字符类的边缘:
[\d\s:,>-]
是的,我知道
replace
返回一个新字符串。我正在运行
console.log(input.replace)
。我希望它能去掉只包含数字和时间戳的行,留下[罗宾大笑]和[所有的尖叫声]。这确实有效,但我不会试图从文本中去掉所有数字、冒号和空格,这就是它所做的;我只是想删除只包含这些内容的行(因此,
^…$
表单)。在这种情况下,请检查我编辑的回复。希望这一个有帮助。谢谢你,编辑使它工作完美。我没有意识到
m
标志,我学到了一些东西。非常感谢。