【问题标题】:JavaScript regex test if string contains specific word (with variable) [duplicate]JavaScript正则表达式测试字符串是否包含特定单词(带变量)[重复]
【发布时间】:2012-04-10 17:59:55
【问题描述】:

我有一个正则表达式来检查字符串是否包含特定单词。它按预期工作:

/\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

但我需要将要在变量中检查的单词。使用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

这里有什么问题?

【问题讨论】:

    标签: javascript regex string-comparison


    【解决方案1】:
    var myWord = 'word';
    new RegExp('\\b' + myWord + '\\b')
    

    从字符串构建正则表达式时,您需要双重转义 \


    这是因为\ 在字符串文字中开始了一个转义序列,所以它永远不会进入正则表达式。通过执行\\,您将在字符串中包含一个文字'\' 字符,这使得正则表达式/\bword\b/

    【讨论】:

    • 在您发布答案的同时想出来。谢谢。
    • \b 不适用于所有语言
    • @Uri:不确定这与这个答案有什么关系。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-09
    相关资源
    最近更新 更多