无论是正确的姓名还是不正确的姓名都匹配不到
来源:2-1 JavaScript表单验证
cj啦啦啦啦
2019-12-20 11:43:01
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="#" method="post" id="frmInfo">
<div id="error" style="color: red"></div>
<div>
姓名 :<input id="name" name="name" />
</div>
<div>
身份证:<input id="idno" name="idno" />
</div>
<div>
<input type="submit" />
</div>
</form>
<script type="text/javascript">
document.getElementById("frmInfo").onsubmit=function(){
//在JS中定义正则表达式对象只需要在/正则表达式/
regex1=/^[\u4e00-\u9fa5]{2,8}$/;
regex2=/^[1234568]\d{16}[0-9xX]$/
var name=document.getElementById("name").value;
var idno=document.getElementById("idno").value;
if(regex1.test(name)==false);{//利用正则校验数据,true代表匹配,false代表不匹配
document.getElementById("error").innerHTML="无效姓名";
return false;
}
else if(regex1.test(idno)==false){
document.getElementById("error").innerHTML="无效身份证号";
return false;
}
else{
alert("验证通过,准备提交")
return true;
}
}
</script>
</body>
</html>
1回答
好帮手慕柯南
2019-12-20
同学你好!
1. 你的代码报错了
查看代码的63行前后的代码,发现你在if语句后面写了;号,导致else不匹配报错了
2. 你的身份证的验证有误,原因是用了验证用户名的正则验证身份证
改为regex2就可以
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
相似问题