Jak użyć wyrażenia regularnego javascript, aby sprawdzić ciąg, który nie pasuje do określonych słów?
Na przykład chcę funkcji, która po przekazaniu ciągu zawierającego albo abc
albo def
, zwraca fałsz.
„abcd” -> false
„cdef” -> fałsz
„bcd” -> prawda
EDYTOWAĆ
Preferuję wyrażenie regularne tak proste, jak np. [^ Abc], ale nie daje ono oczekiwanego wyniku, ponieważ potrzebuję kolejnych liter.
na przykład. chcęmyregex
if ( myregex.test('bcd') ) alert('the string does not contain abc or def');
Instrukcja myregex.test('bcd')
jest oceniana na true
.
javascript
regex
string
bxx
źródło
źródło
.
i*
nie wydaje się działaćif (!s.match(/abc|def/g)) { alert("match"); } else { alert("no match"); }
źródło
/abc|def/g.test(s)
tym przypadku może lepiej użyć tego zwracającego wartość logiczną;)Oto czyste rozwiązanie:
function test(str){ //Note: should be /(abc)|(def)/i if you want it case insensitive var pattern = /(abc)|(def)/; return !str.match(pattern); }
źródło
function test(string) { return ! string.match(/abc|def/); }
źródło
string.match(/abc|def/)
jest prawdopodobnie bardziej wydajna tutajreturn !string.match(...
function doesNotContainAbcOrDef(x) { return (x.match('abc') || x.match('def')) === null; }
źródło
Można to zrobić na dwa sposoby:
if (str.match(/abc|def/)) { ... } if (/abc|def/.test(str)) { .... }
źródło