用js验证用户名和密码,条件是用户名和密码的字符必须是字母数字下划线,但是验证不成功。请大家指点一下啊。js代码如下:
<script language="JavaScript" type="text/JavaScript">
function checkreg(){ var username = document.getElementById('userName').value;
var password = document.getElementById('password').value;
alert('username');
alert('password');
var usern = /^[a-zA-Z0-9_]{1,}$/;
if(username == null){
alert('用户名不能为空!');
username.focus();
return false;
}else if (!username.match(usern)) {
           alert('用户名只能由字母数字下划线组成\n');
         username = '';
            username.focus();
               return false;
            }else if(password == ''){
     alert('密码不能为空');
     password.focus();
     return false;
       }else if(!password.match(usern){
     alert('用户名只能由字母数字下划线组成\n');
     password = '';
     password.focus();
     return false;
    }
    return true;
}
</script>
<td><input type="text" id="userName" name="userName"onblur="checkreg()" /></td>
<td><input type="text" id="password" name="password"onblur="checkreg()" /></td>

解决方案 »

  1.   

    (!password.match(usern)改成if(!usern.test(password))试试
    match是将满足正则的部分返回
      

  2.   

    所以你的用户名中有字母数字下划线就一定是true了  而不是只能有数字字母下划线时才为true
      

  3.   

    楼主你的逻辑太混乱了,还有username.focus();你这里username是值不是对象,username.match(usern)语法错误,这个还是返回数组的,不是bool值,看看下面的
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
       
    <script language="JavaScript" type="text/JavaScript">
     function checkreg(){ var username = document.getElementById('userName');
     var password = document.getElementById('password'); var usern = /^[a-zA-Z0-9_]{1,}$/;
     if (username.value == "") {
         alert('用户名不能为空!');
         username.focus();
         return false;
     }
     if (password.value == "") {
         alert('密码不能为空!');
         password.focus();
         return false;
     }
     if (!usern.test(username.value)) {
         alert('用户名只能由字母数字下划线组成\n');
         username.focus();
         return false;
     }
     if (!usern.test(password.value)) {
         alert('密码只能由字母数字下划线组成\n');
         password.focus();
         return false;
     }
       
    }
    </script>
    </head>
    <body>
    <input type="text" id="userName" name="userName"onblur="checkreg()" />
    <input type="text" id="password" name="password"onblur="checkreg()" />
    </body>
    </html>
      

  4.   

    我用这个试了一下,但是提示说没有match属性,怎么办