Javascript String.replace()不工作,即使相同的正则表达式在其他langs中也不工作?
我有一个textarea元素,它包含以下形式的文本: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方法在同一个文本上尝试了
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,”)在其上单击code>,然后单击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
标志,我学到了一些东西。非常感谢。