function button1(){
var yonghuming=/([a-z;A-Z;0-9;_]{2,14}|[u4e00-;u9fa5]{2,7})/;
if (text1.value==""||text2.value==""||text3.value==""||text4.value==""||text5.value==""||pw1.value=="")
{
alert("请完整信息!");
}
else {
if(text1.value !=yonghuming.test){
alert("请按规则输入用户名!");

}
else{

}
这是一个用户注册的页面,TEXT1是 用户名的注册框
上面是我的代码,我先判断所有需要填写的资料是否完全,如果完全了,再判断用户名的TEXT1是否符合正则表达式,2~7位汉字,2~14位标示符。
但是我运行的时候 第二个IF语句 我输入满足正则表达式的内容 仍然会提示 “请按规则输入用户名!”  请问怎么解决,哪里出错了》

解决方案 »

  1.   

    [a-z;A-Z;0-9;_] 这里的分号算啥玩意儿?
      

  2.   

    不要用等于,用内容匹配,,equal
      

  3.   

    text1.value !=yonghuming.test我表示不知道判断是不是这么写的
      

  4.   

    function button1(){
    var yonghuming=/([a-z,A-Z,0-9,_]{2,14}|[u4e00-u9fa5]{2,7})/;
    if (text1.value==""||text2.value==""||text3.value==""||text4.value==""||text5.value==""||pw1.value=="")
    {
    alert("请完整信息!");
    }
    else {
    if(!yonghuming.test(text1.value)){
    alert("请按规则输入用户名!");}
    else{}
      

  5.   

    ls你改成逗号作甚,test那地方是对了压根就不需要分隔符
      

  6.   

    如8楼所说。不过:
      var yonghuming=/([a-zA-Z0-9_]{2,14}|[u4e00-u9fa5]{2,7})/;这种写法的风险是你允许 _ 和 数字 作为用户名首字母,如果想更合适点的话可以:
      var yonghuming=/([a-zA-Z][a-zA-Z0-9_]{1,13}|[u4e00-u9fa5]{2,7})/;
      

  7.   

    var yonghuming=/^([a-z,A-Z,0-9,_]{2,14}|[u4e00-u9fa5]{2,7})$/;改成这样
      

  8.   

    var yonghuming=/^([a-z,A-Z,0-9,_]{2,14}|[\u4e00-\u9fa5]{2,7})$/;改成这样 斜杠