javascript regular expression to not match a word

JavascriptRegexString

Javascript Problem Overview


How do I use a javascript regular expression to check a string that does not match certain words?

For example, I want a function that, when passed a string that contains either abc or def, returns false.

'abcd' -> false

'cdef' -> false

'bcd' -> true

EDIT

Preferably, I want a regular expression as simple as something like, [^abc], but it does not deliver the result expected as I need consecutive letters.

eg. I want myregex

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

The statement myregex.test('bcd') is evaluated to true.

Javascript Solutions


Solution 1 - Javascript

This is what you are looking for:

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

The ?! part is called a negative lookahead assertion. It means "not followed by".

The explanation is here: https://stackoverflow.com/questions/406230/regular-expression-to-match-string-not-containing-a-word

Solution 2 - Javascript

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

Solution 3 - Javascript

Here's a clean solution:

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

Solution 4 - Javascript

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

Solution 5 - Javascript

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

Solution 6 - Javascript

This can be done in 2 ways:

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionbxxView Question on Stackoverflow
Solution 1 - JavascriptssgaoView Answer on Stackoverflow
Solution 2 - JavascriptPetar IvanovView Answer on Stackoverflow
Solution 3 - JavascriptNoBrainerView Answer on Stackoverflow
Solution 4 - JavascriptFlimzyView Answer on Stackoverflow
Solution 5 - JavascriptBemmuView Answer on Stackoverflow
Solution 6 - JavascriptGirish GuptaView Answer on Stackoverflow