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
.
This question is related to
javascript
regex
string
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);
}
This can be done in 2 ways:
if (str.match(/abc|def/)) {
...
}
if (/abc|def/.test(str)) {
....
}
function doesNotContainAbcOrDef(x) {
return (x.match('abc') || x.match('def')) === null;
}
if (!s.match(/abc|def/g)) {
alert("match");
}
else {
alert("no match");
}
function test(string) {
return ! string.match(/abc|def/);
}
Source: Stackoverflow.com