用户名(6到10个字母,汉字,下划线。首字符不能是下划线)的验证怎么写
:cry: 谢谢
我在想,这个可能不能使用正则实现。原因在于一个汉字是相当于两个字符。
那么你需要分步用JS判断。
当然如果你不介意这个汉字的话,那么简单了。
/(?<!_)[A-Za-z0-9\u4E00-\u9FFF_]{6,10}/
你可以要校验下,大致思路就是这样
[a-zA-Z\u4e00-\u9fa5][a-zA-Z\u4e00-\u9fa5_]{5,7}
function verityName(){
var name=document.form1.userName.value;
var zhengzeName=/(?<!_)[A-Za-z0-9\u4E00-\u9FFF_]{6,10}/ ;<!--正则表达式验证用户名,测试字母和汉字-->
var nameLength = 0;
if(zhengzeName.test(name)){
}else{
document.getElementById("verityName").innerHTML="请输入正确的操作员格式";
}
for (var i = 0; i < name.length; i++) {
var word = name.substring(i, 1);
if (/[^\x00-\xff]/g.test(word)) { <!--匹配双字节字符,包括汉字,查看输入字符的字节-->
nameLength += 2;
} else {
nameLength++;
}
}
}