2013-08-31 144 views
-1

我試圖返回true,如果$ str不包含'script +'。 它只會阻止'腳本',但不會'腳本+'...PHP的正則表達式忽略除字母以外的所有符號

我該如何解決它?

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

什麼是你想檢查到底是什麼?也許我們可以找到一個更好的解決方案,如果你解釋你的目標是什麼(有很好的例子) –

+0

你也可以使用'strpos()'。如果它返回「false」,那麼該字符串不包含它,否則它會。 –

回答

0

您正在使用的字符類只匹配單個字符。你應該刪除它。 +之後使用\b沒有意義,因爲+不是一個字。你也應該刪除它。然後在字符類外面跳過+,因爲它是正則表達式中的元字符。

和肯定,你可以像這樣有更換if-else塊,單return聲明:

return !preg_match('/\bscript\+/u', $str) 
+0

儘管最後一個'\ b'可能是不必要的,刪除第一個'\ b'肯定會改變其含義。 – user113215

+0

@ user113215。啊!當然。將編輯。 –

+0

是的,它是作品。 :) 謝謝你們 – FireForce

相關問題