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

javascript regular expression to not match a word

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

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

'abcd'->false

'cdef'->false

'bcd'->真

编辑

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

我要的是myregex

埃多克斯1〔3〕

myregex.test('bcd')号报表进行评估,得出true号报表。


这就是你在找的。

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

这里的解释是:正则表达式匹配的线对是不是包含了Word文档?


1
2
3
4
5
6
if (!s.match(/abc|def/g)) {
    alert("match");
}
else {
    alert("no match");
}


解决方案:这是清洁的

1
2
3
4
5
function test(str){
    //Note: should be /(abc)|(def)/i if you want it case insensitive
    var pattern = /(abc)|(def)/;
    return !str.match(pattern);
}

1
2
3
function test(string) {
    return ! string.match(/abc|def/);
}


在这种方式,可以这样做:2

1
2
3
4
5
6
7
8
if (str.match(/abc|def/)) {
                       ...
                    }


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

1
2
3
function doesNotContainAbcOrDef(x) {
    return (x.match('abc') || x.match('def')) === null;
}