问题描述
用户名(6到10个字母,汉字,下划线。首字符不能是下划线)的验证怎么写 谢谢
解决方案
我在想,这个可能不能使用正则实现。原因在于一个汉字是相当于两个字符。那么你需要分步用JS判断。当然如果你不介意这个汉字的话,那么简单了。/(?<!_)[A-Za-z0-9u4E00-u9FFF_]{6,10}/你可以要校验下,大致思路就是这样
解决方案二:
function verityName(){ var name=document.form1.userName.value; var zhengzeName=/(?<!_)[A-Za-z0-9u4E00-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++; } } }
解决方案三:
[a-zA-Zu4e00-u9fa5][a-zA-Zu4e00-u9fa5_]{5,7}
时间: 2024-09-08 14:00:39