PHP正則匹配中文漢字注意


preg_match('/^[a-zA-Z\x{4e00}-\x{9fa5}]+$/u', $str)

如上,是匹配字母或者漢字的,一定要在后面加模式修飾符 u , 不然就出錯!

 

u ( PCRE_UTF8)
此修正符打開一個與 perl 不兼容的附加功能。 模式字符串被認為是utf-8的. 這個修飾符 從 unix 版php 4.1.0 或更高,win32版 php 4.2.3 開始可用。 php 4.3.5 開始檢查模式的 utf-8 合法性。
utf8格式的匹配模式字符串必須要使用  u 修飾符。 否則出現程序意料之外的異常情況。
代碼 :
preg_match('/[<>\\\′""&#=\+]/', '張利', $match);
var_dump($match);
結果 :array(1) {
  [0]=>
  string(1) "�"
}
preg_match('/[<>\\\′""&#=\+]/u', '張利', $match);
var_dump($match);
結果 :array(0) {
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM