用户名正则验证,要求用户名满足以下条件:
1、只允许输入中文、英文、数字、下划线或它们的组合
2、只能以中文或者英文开头
3、要求4~16字节长度(1个汉字=2字节)
4、不允许出现空白字符(包括全角半角空格、换行符)恳请高手出招!问了许多,似乎条件3很难满足。实在搞不定就满足1、2、4吧!谢谢!目前只能做到满足1和2要求的:
^[A-Za-z\u4e00-\u9fa5][\w\u4e00-\u9fa5]{3,15}$
1、只允许输入中文、英文、数字、下划线或它们的组合
2、只能以中文或者英文开头
3、要求4~16字节长度(1个汉字=2字节)
4、不允许出现空白字符(包括全角半角空格、换行符)恳请高手出招!问了许多,似乎条件3很难满足。实在搞不定就满足1、2、4吧!谢谢!目前只能做到满足1和2要求的:
^[A-Za-z\u4e00-\u9fa5][\w\u4e00-\u9fa5]{3,15}$
<script type="text/javascript">function isMatchName(str){
var reg1=/([\u4e00-\u9fa5])/g;
var reg2=/^[A-Za-z][\w]{3,15}$/g; strmatch=str;
strmatch.replace(reg1,"aa"); return (strmatch.test(reg2))&&(strmatch.length<=16);
}</script>以上只供参考。
if(/[\s\u3000]/.test(str))return false;//条件4
var len = str.replace(/[^\x00-]xff]/g,"xx").length;
if(len>16 && len<4)return false;//条件3
if(/^[A-Za-z\u4e00-\u9fa5][\w\u4e00-\u9fa5]$/.test(str))return true;//条件1~2
return false;
}
//if(/[\s\u3000]/.test(str))return false;//条件4 这句不用了 因为[\w\u4e00-\u9fa5]+本来就不带空格和换行
var len = str.replace(/[^\x00-]xff]/g,"xx").length;
if(len>16 && len<4)return false;//条件3 没办法判断实际长度只能用这个方法
if(/^[A-Za-z\u4e00-\u9fa5][\w\u4e00-\u9fa5]+$/.test(str))return true;//条件1~2
return false;
}
如果是限制字符 ,怎么写?