1. ホーム
  2. javascript

[解決済み] javascript の正規表現で単語をマッチングさせない

2022-11-13 01:10:13

質問

javascriptの正規表現を使って、特定の単語と一致しない文字列をチェックするにはどうすればよいですか?

たとえば、私は、次のいずれかを含む文字列を渡されたときに、その関数が欲しいです。 abc または def であれば、falseを返します。

'abcd' -> falseを返します。

'cdef' -> false

'bcd' -> true

EDIT

できれば、[^abc]のような簡単な正規表現が欲しいのですが、連続した文字が必要なので、期待するような結果は得られません。

例えば 私は myregex

if ( myregex.test('bcd') ) alert('the string does not contain abc or def');

ステートメント myregex.test('bcd') は次のように評価されます。 true .

どのように解決するのですか?

これは、あなたが探しているものです。

^((?!(abc|def)).)*$

?! という部分は ネガティブ・ルックアヘッド・アサーション . これは、"not followed by"を意味します。

解説はこちらです。 単語を含まない行にマッチする正規表現