0

文字列がキーワードと一致しない場合に何か(文全体)を返す正規表現が必要です。

これは奇妙かもしれませんが、JavaScriptで次のようなものが必要です。

"any word".match(/.*(?!my key)/) => I would want ["any word"]
"my key".match(/.*(?!my key)/) => I would want null

この以前は機能しません。

私は次のようなことはできません。

if "any word".match(/my key/)
  return null
else
  return "any word"

私は正規表現を受け取り、一致する場合は関数を実行する場所にいるからです。

4

1 に答える 1

1

正規表現では、.*最初に文字列全体と一致し、次に先読みアサーションも成功します(もちろん、文字列の最後では(?!my key)一致できないため)。my key

あなたが欲しい

"test string".match(/^(?!.*my key).*/)

sまた、テスト文字列に改行が含まれている可能性がある場合は、修飾子を使用する必要があります。また、次の\bような文字列での誤検知を回避するために、単語の境界()を使用することもできますarmy keypad

"test string".match(/^(?!.*\bmy key\b).*/s)
于 2013-02-24T07:50:36.413 に答える