Como utilizo uma expressão regular javascript para verificar uma string que não corresponde a certas palavras?
Por exemplo, eu quero uma função que, quando passada uma string que contém abc
ou def
, retorne falso.
'abcd' -> falso
'cdef' -> falso
'bcd' -> verdadeiro
EDITAR
De preferência, quero uma expressão regular tão simples como algo como [^ abc], mas não entrega o resultado esperado, pois preciso de letras consecutivas.
por exemplo. eu queromyregex
if ( myregex.test('bcd') ) alert('the string does not contain abc or def');
A declaração myregex.test('bcd')
é avaliada para true
.
javascript
regex
string
bxx
fonte
fonte
.
e*
não parece funcionarif (!s.match(/abc|def/g)) { alert("match"); } else { alert("no match"); }
fonte
/abc|def/g.test(s)
esse return um booleano neste caso;)Aqui está uma solução limpa:
function test(str){ //Note: should be /(abc)|(def)/i if you want it case insensitive var pattern = /(abc)|(def)/; return !str.match(pattern); }
fonte
function test(string) { return ! string.match(/abc|def/); }
fonte
string.match(/abc|def/)
é provavelmente mais eficiente aquireturn !string.match(...
function doesNotContainAbcOrDef(x) { return (x.match('abc') || x.match('def')) === null; }
fonte
Isso pode ser feito de duas maneiras:
if (str.match(/abc|def/)) { ... } if (/abc|def/.test(str)) { .... }
fonte