Javascript正規表現を使用して、特定の単語と一致しない文字列をチェックするにはどうすればよいですか?
たとえば、abc
またはdef
のいずれかを含む文字列が渡されたときにfalseを返す関数が必要です。
'abcd'-> false
'cdef'-> false
'bcd'-> true
編集
できれば、[^ abc]のような単純な正規表現が必要ですが、連続した文字が必要なため、期待どおりの結果が得られません。
例えば。 myregex
が欲しい
if ( myregex.test('bcd') ) alert('the string does not contain abc or def');
ステートメントmyregex.test('bcd')
はtrue
に評価されます。
if (!s.match(/abc|def/g)) {
alert("match");
}
else {
alert("no match");
}
クリーンなソリューションは次のとおりです。
function test(str){
//Note: should be /(abc)|(def)/i if you want it case insensitive
var pattern = /(abc)|(def)/;
return !str.match(pattern);
}
function test(string) {
return ! string.match(/abc|def/);
}
これは2つの方法で実行できます。
if (str.match(/abc|def/)) {
...
}
if (/abc|def/.test(str)) {
....
}
function doesNotContainAbcOrDef(x) {
return (x.match('abc') || x.match('def')) === null;
}