我試圖返回true,如果$ str不包含'script +'。 它只會阻止'腳本',但不會'腳本+'...PHP的正則表達式忽略除字母以外的所有符號
我該如何解決它?
if (!preg_match('/[\bscript+\b]/u', $str))
return true;
else
return false;
我試圖返回true,如果$ str不包含'script +'。 它只會阻止'腳本',但不會'腳本+'...PHP的正則表達式忽略除字母以外的所有符號
我該如何解決它?
if (!preg_match('/[\bscript+\b]/u', $str))
return true;
else
return false;
您正在使用的字符類只匹配單個字符。你應該刪除它。 +
之後使用\b
沒有意義,因爲+
不是一個字。你也應該刪除它。然後在字符類外面跳過+
,因爲它是正則表達式中的元字符。
和肯定,你可以像這樣有更換if-else
塊,單return
聲明:
return !preg_match('/\bscript\+/u', $str)
儘管最後一個'\ b'可能是不必要的,刪除第一個'\ b'肯定會改變其含義。 – user113215
@ user113215。啊!當然。將編輯。 –
是的,它是作品。 :) 謝謝你們 – FireForce
什麼是你想檢查到底是什麼?也許我們可以找到一個更好的解決方案,如果你解釋你的目標是什麼(有很好的例子) –
你也可以使用'strpos()'。如果它返回「false」,那麼該字符串不包含它,否則它會。 –