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) {
}