我想检查任何人不要输入yahoo,gmail或任何组word.for我已经创建了正则表达式,如下所示,但当我尝试输入javascript时它会给出无效组。
if (str.match('/^(.*?(\W|^)(?i)(yahoo|gmail|com)(\W|$))$/')) {
return true;
}
答案 0 :(得分:3)
您得到的错误与(?i)
有关,这是JS正则表达式引擎不支持的内联修饰符。 (\W|^)
是一些库中用于表示单词边界的常见构造,但在JS中,更容易使用单词边界,\b
。
我建议
var str = "YaHoo here";
if (/\b(?:yahoo|gmail|com)\b/i.test(str)) {
console.log("Contains forbidden word!");
} else {
console.log("Good!");
}

模式详情:
\b
- 领先的单词边界(?:yahoo|gmail|com)
- 3个替代方案中的任何一个\b
- 尾随字边界