javascript 中的 search() 方法无法在包含它的字符串中搜索“\\ch”

The search() method in javascript fail to search for "\\ch" in a string containing it

我试图找到乳胶代码的 \ch 的位置,比如 foo\ch 但字符串的搜索方法无法做到这一点。例如运行下面的代码:

console.log('foo\c'.search('\c')); // expected 3, really get 3
console.log('foo\ch'.search('\ch')); // expected 3, but get -1

我怀疑 "error" 是由于 \ch 形成了一个特殊字符,但我在网上搜索了一下,似乎 \ch 不是一个特殊字符。

使用字符串作为参数调用 search() 时,它会转换为正则表达式(参见 here

但是 new RegExp('\ch') returns /\ch/ 这是匹配任何退格字符的正则表达式(\cX 匹配控制字符 X,参见 here).

要实现您想要的效果,请使用 /\ch/ 正则表达式

'Foo\ch'.search(/\ch/) // returns 3