在 js 中,您必须对点/字符进行双重转义才能获得转义字符。这很奇怪。为什么?
js:
"." == "." // true
"\." == "." // true
"\\." == "." // false
"\a" == "a" // true
在 python/php 中,它的行为与预期的一样:
"\." == "." // False
在 js 正则表达式中它以其他方式工作,多么奇怪:)
"\.".search(/\./) // no hit
"\\.".search(/\./) // hit
更新
就像 TJ Crowder 正确地提到正则表达式示例是错误的一样。正\.
则表达式当然匹配文字点。
正确的例子是:
// Find a literal backslash and a literal dot
"\\.".search(/\\\./) // position 0
// Find a literal Dot
"\\.".search(/\./) // position 1