Comment utiliser une expression régulière javascript pour vérifier une chaîne qui ne correspond pas à certains mots?
Par exemple, je veux une fonction qui, lorsqu'elle est passée une chaîne qui contient soit abc
ou def
, retourne false.
'abcd' -> faux
'cdef' -> faux
'bcd' -> vrai
ÉDITER
De préférence, je veux une expression régulière aussi simple que quelque chose comme [^ abc], mais elle ne donne pas le résultat attendu car j'ai besoin de lettres consécutives.
par exemple. Je voudraismyregex
if ( myregex.test('bcd') ) alert('the string does not contain abc or def');
L'instruction myregex.test('bcd')
est évaluée à true
.
.
et*
ne semble pas fonctionnerif (!s.match(/abc|def/g)) { alert("match"); } else { alert("no match"); }
la source
/abc|def/g.test(s)
ce retour booléen dans ce cas;)Voici une solution propre:
function test(str){ //Note: should be /(abc)|(def)/i if you want it case insensitive var pattern = /(abc)|(def)/; return !str.match(pattern); }
la source
function test(string) { return ! string.match(/abc|def/); }
la source
string.match(/abc|def/)
est probablement plus efficace icireturn !string.match(...
function doesNotContainAbcOrDef(x) { return (x.match('abc') || x.match('def')) === null; }
la source
Cela peut être fait de 2 manières:
if (str.match(/abc|def/)) { ... } if (/abc|def/.test(str)) { .... }
la source