php用户名正则验证


在php中,通过正则表达式对用户名进行格式验证,烦了我好久,终于找到了解决办法,在这里分享给大家。

用户名验证规则:用户名只能由数字、字母、中文汉字及下划线组成,不能包含特殊符号。

<?php
header('Content-Type:text/html;charset=utf-8');
	$string = "梅子16352_aa";
	if(preg_match('/^[A-Za-z0-9_\x{4e00}-\x{9fa5}]+$/u',$string)) {
		echo "可以注册!";
	}else{
		echo "用户名由2-16位数字或字母、汉字、下划线组成!";
	}

关键在于"/^[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"声明编码格式。

参考自:http://www.thinkphp.cn/code/642.html


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM