Подтвердить что ты не робот

Регулярное выражение javascript не соответствует слову

Как использовать регулярное выражение javascript для проверки строки, которая не соответствует определенным словам?

Например, мне нужна функция, которая при передаче строки, содержащей либо abc, либо def, возвращает false.

'abcd' → false

'cdef' → false

'bcd' → true

ИЗМЕНИТЬ

Предпочтительно, я хочу, чтобы регулярное выражение было простым, как что-то вроде [^ abc], но оно не доставляет ожидаемого результата, поскольку мне нужны последовательные буквы.

например. Я хочу myregex

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

Оператор myregex.test('bcd') оценивается как true.

4b9b3361

Ответ 2

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

Ответ 3

Здесь чистое решение:

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

Ответ 4

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

Ответ 5

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

Ответ 6

Это можно сделать двумя способами:

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


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