测试方法不适用于带有parantheses /特殊字符的字符串的正则表达式

时间:2017-03-20 14:24:26

标签: javascript regex

我正在尝试返回布尔值,以便将输入字符串与精确的正则表达式模式匹配,但是给定的代码对于包含括号的字符串不起作用.Below是同样的示例。

function myFunction() {
    var str = "Account Opening Member Onboarding Assignment Cube (AOMOA)";
    var patt = new RegExp("/\bAccount Opening Member Onboarding Assignment Cube (AOMOA)\b/");
    return patt.test(str);
}

2 个答案:

答案 0 :(得分:1)

最有可能的是,您要查找空格之间的整个单词,因为您传递给正则表达式的搜索短语可能以特殊字符开头/结尾。在这种情况下,请使用(?:^|\s)代替第一个\b(?!\S),而不是最后一个\b

另一点是你需要escape the search phrase才能将最终的特殊字符视为字面字符。

使用



function myFunction(key) {
    var str = "Text with Account Opening Member Onboarding Assignment Cube (AOMOA) string inside";
    var patt = new RegExp("(?:^|\\s)" + key.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&') + "(?!\\S)");
    return patt.test(str);
}

var key="Account Opening Member Onboarding Assignment Cube (AOMOA)";
console.log(myFunction(key));




答案 1 :(得分:0)

{{1}}