javascript正则expression式不匹配一个单词

如何使用JavaScript正则expression式来检查不匹配某些单词的string?

例如,我想要一个函数,当传递一个包含abcdef的string时,返回false。

'abcd' – > false

'cdef' – > false

'bcd' – > true

编辑

最好是,我想要一个像[^ abc]这样简单的正则expression式,但是由于我需要连续的字母,所以它并没有提供预期的结果。

例如。 我想要myregex

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

语句myregex.test('bcd')的计算结果为true

这是你在找什么:

 ^((?!(abc|def)).)*$ 

这里的解释是: 正则expression式匹配一个不包含单词的行吗?

 if (!s.match(/abc|def/g)) { alert("match"); } else { alert("no match"); } 

这是一个干净的解决scheme:

 function test(str){ //Note: should be /(abc)|(def)/i if you want it case insensitive var pattern = /(abc)|(def)/; return !str.match(pattern); } 
 function test(string) { return ! string.match(/abc|def/); } 
 function doesNotContainAbcOrDef(x) { return (x.match('abc') || x.match('def')) === null; } 

这可以通过两种方式完成:

 if (str.match(/abc|def/)) { ... } if (/abc|def/.test(str)) { .... }