簡體   English   中英

preg_match條件問題

[英]preg_match condition problem

我不會檢查字符串($ nick_2)是否為“或ñ

這個對嗎? 我不能使它工作

if ( (strlen($nick_2) >= 3) && (strlen($nick_2) <= 25) && (!preg_match("/\"/", $nick_2)) && (!preg_match("/ñ/", strtolower($nick_2))) ) {

對於查找單個字符,正則表達式會產生極大的過大殺傷力。 只需使用

if ((strpos('"', $nick_2) !== FALSE) || (strpos('ñ', $nick_2) !== FALSE)) {
   ... chars were found
}

可能您的字符串位於UTF-8中,在這種情況下,您必須在preg_match使用u修飾符,並且還應該在UTF-8中將表達式提交給該函數。

如果是這種情況,您還需要做以下一些事情:

  • mb_替代替換strtolowerstrlen
  • 標准化輸入。
  • 檢查那些字符所在的字素是否沒有更多的代碼點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM