javascript正则表达式与单词不匹配

bxx*_*bxx 81 javascript regex string

如何使用javascript正则表达式检查与某些单词不匹配的字符串?

例如,我想,当通过包含一个字符串的函数abcdef返回false.

'abcd' - >假

'cdef' - > false

'bcd' - >真的

编辑

最好,我想要一个简单的正则表达式,如[^ abc],但它不能提供预期的结果,因为我需要连续的字母.

例如.我想要myregex

if ( myregex.test('bcd') ) alert('the string does not contain abc or def');

该声明myregex.test('bcd')被评估为true.

ssg*_*gao 106

这就是你要找的东西:

^((?!(abc|def)).)*$
Run Code Online (Sandbox Code Playgroud)

解释在这里: 正则表达式匹配不包含单词的行?

  • 对不起,我可以问一下我要复制哪一个? (4认同)
  • 谢谢,但我认为它并不完全相同,OP要求匹配一个不包含*某些*单词的字符串,而另一个问题的答案是关于*一个*单词,但我将其标记为管理员,无论如何,看看是否这有帮助. (2认同)
  • 是否有与整个单词都不匹配的答案?您的示例“ abc”,“ babc”和“ abcd”全部失败,并且随着“ xyz”的通过而失败。我需要“ abc”才能失败,但要通过“ abcd”。删除`.`和`*`似乎不起作用 (2认同)

Pet*_*nov 18

if (!s.match(/abc|def/g)) {
    alert("match");
}
else {
    alert("no match");
}
Run Code Online (Sandbox Code Playgroud)


NoB*_*ner 5

这是一个干净的解决方案:

function test(str){
    //Note: should be /(abc)|(def)/i if you want it case insensitive
    var pattern = /(abc)|(def)/;
    return !str.match(pattern);
}
Run Code Online (Sandbox Code Playgroud)