Alp*_*Alp 10 javascript regex string-comparison
我有一个正则表达式来检查字符串是否包含特定的单词.它按预期工作:
/\bword\b/.test('a long text with the desired word amongst others'); // true
/\bamong\b/.test('a long text with the desired word amongst others'); // false
Run Code Online (Sandbox Code Playgroud)
但我需要一个即将在变量中检查的词.使用new RegExp不正常,它总是返回false:
var myString = 'a long text with the desired word amongst others';
var myWord = 'word';
new RegExp('\b' + myWord + '\b').test(myString); // false
myWord = "among";
new RegExp('\b' + myWord + '\b').test(myString); // false
Run Code Online (Sandbox Code Playgroud)
这有什么不对?
小智 25
var myWord = 'word';
new RegExp('\\b' + myWord + '\\b')
Run Code Online (Sandbox Code Playgroud)
\从字符串构建正则表达式时,您需要双重转义.
这是因为\在字符串文字中开始一个转义序列,所以它永远不会进入正则表达式.通过这样做\\,你'\'在字符串中包含一个文字字符,这使得正则表达式/\bword\b/.