Bagaimana cara menggunakan ekspresi reguler javascript untuk memeriksa string yang tidak cocok dengan kata tertentu?
Misalnya, saya menginginkan fungsi yang, ketika diteruskan string yang berisi salah satu abc
atau def
, mengembalikan nilai salah.
'abcd' -> salah
'cdef' -> salah
'bcd' -> benar
EDIT
Lebih disukai, saya ingin ekspresi reguler sesederhana seperti, [^ abc], tetapi tidak memberikan hasil yang diharapkan karena saya membutuhkan huruf berurutan.
misalnya. saya inginmyregex
if ( myregex.test('bcd') ) alert('the string does not contain abc or def');
Pernyataan myregex.test('bcd')
tersebut dievaluasi ke true
.
javascript
regex
string
bxx
sumber
sumber
.
dan*
sepertinya tidak berhasilif (!s.match(/abc|def/g)) { alert("match"); } else { alert("no match"); }
sumber
/abc|def/g.test(s)
yang mengembalikan boolean dalam kasus ini;)Inilah solusi bersihnya:
function test(str){ //Note: should be /(abc)|(def)/i if you want it case insensitive var pattern = /(abc)|(def)/; return !str.match(pattern); }
sumber
function test(string) { return ! string.match(/abc|def/); }
sumber
string.match(/abc|def/)
mungkin lebih efisien di sinireturn !string.match(...
function doesNotContainAbcOrDef(x) { return (x.match('abc') || x.match('def')) === null; }
sumber
Ini dapat dilakukan dengan 2 cara:
if (str.match(/abc|def/)) { ... } if (/abc|def/.test(str)) { .... }
sumber