日期:2014-05-16  浏览次数:20297 次

Js 验证用户名和密码不成功
用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>



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

------解决方案--------------------
楼主你的逻辑太混乱了,还有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>