用户名验证规则:用户名只能由数字、字母、中文汉字及下划线组成,不能包含特殊符号。
/^[a-za-z][\w]{3,14}$|^[\x{4e00}-\x{9fa5}a-z-a-z_]{1}([\x{4e0}-\x{9fa5}]|[\x{4e00}-\x{9fa5}a-z-a-z\d_]){3,6}$/u
ps:这是我自己组合的正则表达式,有点长有点复杂;
关键在于/^[a-za-z0-9_\x{4e00}-\x{9fa5}]+$/u这一段,其中a-za-z0-9_代表验证字母、数字及下划线,
\x{4e00}-\x{9fa5}代表汉字验证。/u代表unicode(utf-8)匹配。
在php中,不支持[\u4e00-\u9fa5]匹配汉字,而是用\x表示十六进制数据,然而php中用[\x4e00-\x9fa5]的写法也是错的,
必须用{}把它包起来才行。此外,由于编码关系,需要用到/u声明编码格式。
相关推荐:
php中文汉字正则验证
以上就是php实现用户名中文汉字正则验证的详细内容。