php 如何匹配中文或英文姓名

scutwang發表於2013-07-27

這幾天在做專案的使用者註冊時,想限制使用者使用一些比較奇怪的字元作為名字,即使用中文或者英文名字。

查了一些資料,例如:網友揮得更高的百度空間 寫下了以下函式。

//驗證名字和密碼
    if (!preg_match("/^([\x{4e00}-\x{9fa5}]+)$/u", $sname)&&!preg_match("/^[a-z]+$/i", $sname)) {echo "請使用您的真實姓名";
    }

在這裡使用的是PCRE模式的正規表示式;這裡的修正符u,表示模式字串被當成UTF-8。

(附:關於上面的知識可以參考《POSIX 和 PCRE 標準的正規表示式區別》)

 

經過測試,基本上,中文以及英文名字都可以匹配。

暫時沒發現什麼錯誤。

相關文章