這幾天在做專案的使用者註冊時,想限制使用者使用一些比較奇怪的字元作為名字,即使用中文或者英文名字。
查了一些資料,例如:網友揮得更高的百度空間 寫下了以下函式。
//驗證名字和密碼 if (!preg_match("/^([\x{4e00}-\x{9fa5}]+)$/u", $sname)&&!preg_match("/^[a-z]+$/i", $sname)) {echo "請使用您的真實姓名"; }
在這裡使用的是PCRE模式的正規表示式;這裡的修正符u,表示模式字串被當成UTF-8。
(附:關於上面的知識可以參考《POSIX 和 PCRE 標準的正規表示式區別》)
經過測試,基本上,中文以及英文名字都可以匹配。
暫時沒發現什麼錯誤。