gdo*_*ica 68 javascript regex replace
出于某种原因,这两个正则表达式的行为方式相同:
"43\\gf..--.65".replace(/[^\d.-]/g, "");? // 43..--.65
"43\\gf..--.65".replace(/[^\d\.-]/g, "");? // 43..--.65
Run Code Online (Sandbox Code Playgroud)
在第一个正则表达式中,我没有逃避dot(.)而在第二个正则表达式中我做(\.).
有什么区别以及为什么它们的行为相同?
uso*_*ban 56
因为点在字符类(方括号[])内.
看看http://www.regular-expressions.info/reference.html,它说(在char类部分下):
除^ - ] \之外的任何字符都将该字符添加到字符类的可能匹配项中.
MMi*_*lav 27
如果您使用JavaScript来测试您的正则表达式,请尝试\\.代替\..
它的行为方式相同,因为JS删除了第一个反斜杠.