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