-1

$str に「script+」が含まれていない場合は、true を返そうとしています。「script」のみをブロックし、「script+」はブロックしません...

どうすれば修正できますか?

if (!preg_match('/[\bscript+\b]/u', $str))
return true;
else
return false;
4

1 に答える 1

0

1 文字だけに一致する文字クラスを使用しています。削除する必要があります。そして、単語ではないので、\bafter+を使用しても意味がありません。+これも削除する必要があります。そして+、正規表現のメタ文字であるため、文字クラスの外側をエスケープします。

そして確かに、次のようなif-else単一のステートメントでブロックを置き換えることができます。return

return !preg_match('/\bscript\+/u', $str)
于 2013-08-31T21:23:18.357 に答える