//中文和英文結合而且6-20字符
$preg='/^[a-zA-Z\x{4e00}-\x{9fa5}]{6,20}$/u';
//英文、數字、下劃線6-20位字符
$preg='/^[\w\_]{6,20}$/u';
過濾非法字符防止SQL注入漏洞,只能另說,對不同的接口和參數有針對性的過濾,沒有通用的正則。
用戶名改成純英文或者純中文
<?php
//中文和英文結合而且6-20字符
$name='aa中aassd';
$preg='/^[a-zA-Z\x{4e00}-\x{9fa5}]{6,20}$/u';
$preg2='/^[a-zA-Z]+$/u';
$preg3='/^[\x{4e00}-\x{9fa5}]+$/u';
if(preg_match($preg2,$name) || preg_match($preg3,$name)){
echo "錯誤";//純中文或純英文
}elseif(preg_match($preg,$name)){
echo "OK";//中文結合,因爲前面排除純中文或者純因爲
}else{
echo "錯誤";
}
//英文、數字、下劃線6-20位字符
$preg='/^[\w\_]{6,20}$/u';
?>