老师,我验证输入框时出问题了

老师,我验证输入框时出问题了

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
	<title>正则表达式-重复</title>
	<style type="text/css">
		.wrap{
			width: 1200px;
			height: auto;
			margin: auto auto;
			background-color: #eee;
			overflow: hidden;
		}
		.wrap .top{
			width: 100%;
			height: 30px;
			background-color: #0099CC;
			margin-left:0;
			padding: 0;
		}
		.wrap .top p{
			color: #fff;
			margin-left: 30px;
			line-height: 30px;
			margin:0;
			padding-left: 30px;
		}
		.wrap #regexp{
			width: 500px;
			margin: 50px auto;
			overflow: hidden;
		}
		.wrap #regexp .unify{
			color: #999;
			display: block;
			margin-top: 30px;
		}
		.wrap #regexp .uniform{
			width: 200px;
			height: 20px;
			resize: none;
			vertical-align:middle;
		}
		.wrap #regexp #button{
			width: 80px;
			height: 40px;
			border-radius: 5px;
			background-color: #006699;
			margin: 50px auto;
			margin-top: 80px;
			cursor:pointer;
			margin-left: 150px;
		}
		.wrap #regexp #button p{
			line-height: 40px;
			text-align: center;
			color: #fff;
		}
		.verification{
			 width: 280px;
			   color: red;
			   font-size: 12px;
			   text-align: left;
			   margin-bottom: 4px;
		}
	</style>
</head>
<body>
	<div class="wrap">
		<div class="top"><p>用户注册</p></div>
		<div id="regexp">
			<p class="unify">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用户名:&nbsp;&nbsp;<input type = "text" class="uniform" id="username"></input><span class="verification"></span></p>

			<p class="unify">&nbsp;&nbsp;&nbsp;登录密码:&nbsp;&nbsp;<input type = "password" class="uniform" id="password"></input><span class="verification"></span></p>

			<p class="unify">&nbsp;&nbsp;&nbsp;确认密码:&nbsp;&nbsp;<input type = "password" class="uniform" id="confirmPassword"></input><span class="verification"></span></p>

			<p class="unify">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;姓名:&nbsp;&nbsp;<input type = "text" class="uniform" id="realName"></input><span class="verification"></span></p>

			<p class="unify">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;性别:&nbsp;&nbsp;<select class="uniform" id="sex">
				<option value="nan">男</option>
				<option value="nv">女</option>
			</select><span class = "verification"></span></p>

			<p class="unify">身份证号码:<input type = "text" class="uniform" id="idNumber"></input><span class="verification"></span></p>

			<p class="unify">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;邮箱:&nbsp;&nbsp;<input type = "text" class="uniform" id="email"></input><span class="verification"></span></p>

			<p class="unify">&nbsp;&nbsp;&nbsp;手机号码:&nbsp;&nbsp;<input type = "text" class="uniform" id="phone"></input><span class="verification"></span></p>

			<div id="button" ><p>提交</p></div>
		</div>
	</div>
	<script>
		var username = 		document.getElementById('username'),
			password = 		document.getElementById('password'),
			confirmPassword = document.getElementById('confirmPassword'),
			realName = 		document.getElementById('realName'),
			sex = 			document.getElementById('sex'),
			idNumber = 		document.getElementById('idNumber'),
			email = 		document.getElementById('email'),
			phone = 		document.getElementById('phone'),
			button = 		document.getElementById('button'),
			veri = 			document.getElementsByClassName("verification");
		var pattern = {
			username:/^[a-z]\w{6,20}$/,
			password:/^\S{6,16}&/,
			confirmPassword:/^\S{6,16}&/,
			realName:/^[\u4e00-\u9fa5]{2,4}$/,
			idNumber:/^[0-9]{15}$|^[0-9]{18}$|^[0-9]{17}X$|^[0-9]{16}$/,
			email:/(?:\w+\.)*\w+@(?:\w+\.)+[a-z]/i,
			phone:/^13\d{9}$|^147\d{9}$|^15[0,1,2,3,4,6,7,8,9]{1}\d{8}$|^182\d{8}$|^18[5-9]\d{8}$|^180\d{8}$/
		}
		var allElem = [];
		var flag = false,
			flag1 = false,
			flag2 = false,
			flag3 = false,
			flag4 = false,
			flag5 = false,
			flag6 = false;
		username.onblur = function(){
			if(username.value.match(pattern.username)){
				veri[0].innerHTML = "OK";
				flag = true;
			}else{
				veri[0].innerHTML = "请输入6-20位字母,数字下划线";
				flag = false;
			}
		}
		password.onblur = function(){
			if(password.value.match(pattern.password)){
				veri[1].innerHTML = "OK";
				flag1 = true;
			}else{
				veri[1].innerHTML = "请设置密码";
				flag1 = false;
			}
		}
		confirmPassword.onblur = function(){
			if(password.value == confirmPassword.value){
				veri[2].innerHTML = "OK";
				flag2 = true;
			}else{
				veri[2].innerHTML = "两次输入的密码不一致";
				flag2 = false;
			}
		}
		realName.onblur = function(){
			if(realName.value.match(pattern.name)){
				veri[3].innerHTML = "OK";
				flag3 = true;
			}else{
				veri[3].innerHTML = "请输入2-4位汉字";
				flag3 = false;
			}
		}
		idNumber.onblur = function(){
			if(idNumber.value.match(pattern.idNumber)){
				veri[5].innerHTML = "OK";
				flag4 = true;
			}else{
				veri[5].innerHTML = "请输入正确的身份证号码";
				flag4 = false;
			}
		}
		email.onblur = function(){
			if(email.value.match(pattern.email)){
				veri[6].innerHTML = "OK";
				flag5 = true;
			}else{
				veri[6].innerHTML = "请输入正确的邮箱地址";
				flag5 = false;
			}
		}
		phone.onblur = function(){
			if(phone.value.match(pattern.phone)){
				veri[7].innerHTML = "OK";
				flag6 = true;
			}else{
				veri[7].innerHTML = "请输入6-20位字母,数字下划线";
				flag6 = false;
			}
		}
		button.addEventListener("click",function(){
				if(flag == true && flag1 == true && flag2 == true && flag3 == true && flag4 == true && flag5 == true && flag6 == true){
					alert("成功");
				}else{
					alert("验证失败");
				}
			});
	</script>
</body>
</html>

老师,我输入正确也不提示ok,顺便再帮我看看有没有哪里需要改的地方

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好,关于同学的疑问,解答如下:

1、“用户名”验证时,输入6位验证不正确,是个数限制的问题,输入7位就可以正常验证了,如果要在输入6位时,提示正确,可以修改为5,19

http://img1.sycdn.imooc.com//climg/5e71e6c0092f2f8604600089.jpg

2、登录密码验证:因为同学有个数限制,如下:
http://img1.sycdn.imooc.com//climg/5e71e7740933b6ee03560045.jpg

可以输入6位再测试下。祝学习愉快~

提问者 Redamancy_Y6 2020-03-18 11:20:52

http://img1.sycdn.imooc.com//climg/5e71938909e06bfd06120496.jpg

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
	<title>正则表达式-重复</title>
	<style type="text/css">
		.wrap{
			width: 1200px;
			height: auto;
			margin: auto auto;
			background-color: #eee;
			overflow: hidden;
		}
		.wrap .top{
			width: 100%;
			height: 30px;
			background-color: #0099CC;
			margin-left:0;
			padding: 0;
		}
		.wrap .top p{
			color: #fff;
			margin-left: 30px;
			line-height: 30px;
			margin:0;
			padding-left: 30px;
		}
		.wrap #regexp{
			width: 500px;
			margin: 50px auto;
			overflow: hidden;
		}
		.wrap #regexp .unify{
			color: #999;
			display: block;
			margin-top: 30px;
		}
		.wrap #regexp .uniform{
			width: 200px;
			height: 20px;
			resize: none;
			vertical-align:middle;
		}
		.wrap #regexp #button{
			width: 80px;
			height: 40px;
			border-radius: 5px;
			background-color: #006699;
			margin: 50px auto;
			margin-top: 80px;
			cursor:pointer;
			margin-left: 150px;
		}
		.wrap #regexp #button p{
			line-height: 40px;
			text-align: center;
			color: #fff;
		}
		.verification{
			 width: 280px;
			   color: red;
			   font-size: 12px;
			   text-align: left;
			   margin-bottom: 4px;
		}
	</style>
</head>
<body>
	<div class="wrap">
		<div class="top"><p>用户注册</p></div>
		<div id="regexp">
			<p class="unify">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用户名:&nbsp;&nbsp;<input type = "text" class="uniform" id="username"></input><span class="verification"></span></p>

			<p class="unify">&nbsp;&nbsp;&nbsp;登录密码:&nbsp;&nbsp;<input type = "password" class="uniform" id="password"></input><span class="verification"></span></p>

			<p class="unify">&nbsp;&nbsp;&nbsp;确认密码:&nbsp;&nbsp;<input type = "password" class="uniform" id="confirmPassword"></input><span class="verification"></span></p>

			<p class="unify">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;姓名:&nbsp;&nbsp;<input type = "text" class="uniform" id="realName"></input><span class="verification"></span></p>

			<p class="unify">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;性别:&nbsp;&nbsp;<select class="uniform" id="sex">
				<option value="nan">男</option>
				<option value="nv">女</option>
			</select><span class = "verification"></span></p>

			<p class="unify">身份证号码:<input type = "text" class="uniform" id="idNumber"></input><span class="verification"></span></p>

			<p class="unify">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;邮箱:&nbsp;&nbsp;<input type = "text" class="uniform" id="email"></input><span class="verification"></span></p>

			<p class="unify">&nbsp;&nbsp;&nbsp;手机号码:&nbsp;&nbsp;<input type = "text" class="uniform" id="phone"></input><span class="verification"></span></p>

			<div id="button" ><p>提交</p></div>
		</div>
	</div>
	<script>
		var username = 		document.getElementById('username'),
			password = 		document.getElementById('password'),
			confirmPassword = document.getElementById('confirmPassword'),
			realName = 		document.getElementById('realName'),
			sex = 			document.getElementById('sex'),
			idNumber = 		document.getElementById('idNumber'),
			email = 		document.getElementById('email'),
			phone = 		document.getElementById('phone'),
			button = 		document.getElementById('button'),
			veri = 			document.getElementsByClassName("verification");
		var pattern = {
			username:/^[a-z]\w{6,20}$/,
			password:/^\S{6,16}$/,
			confirmPassword:/^\S{6,16}&/,
			realName:/^[\u4e00-\u9fa5]{2,4}$/,
			idNumber:/^[0-9]{15}$|^[0-9]{18}$|^[0-9]{17}X$|^[0-9]{16}$/,
			email:/(?:\w+\.)*\w+@(?:\w+\.)+[a-z]/i,
			phone:/^13\d{9}$|^147\d{9}$|^15[0,1,2,3,4,6,7,8,9]{1}\d{8}$|^182\d{8}$|^18[5-9]\d{8}$|^180\d{8}$/
		}
		var allElem = [];
		var flag = false,
			flag1 = false,
			flag2 = false,
			flag3 = false,
			flag4 = false,
			flag5 = false,
			flag6 = false;
		username.onblur = function(){
			if(username.value.match(pattern.username)){
				veri[0].innerHTML = "OK";
				flag = true;
			}else{
				veri[0].innerHTML = "请输入6-20位字母,数字下划线";
				flag = false;
			}
		}
		password.onblur = function(){
			if(password.value.match(pattern.password)){
				veri[1].innerHTML = "OK";
				flag1 = true;
			}else{
				veri[1].innerHTML = "请设置密码";
				flag1 = false;
			}
		}
		confirmPassword.onblur = function(){
			if(password.value == confirmPassword.value){
				veri[2].innerHTML = "OK";
				flag2 = true;
			}else{
				veri[2].innerHTML = "两次输入的密码不一致";
				flag2 = false;
			}
		}
		realName.onblur = function(){
			if(realName.value.match(pattern.realName)){
				veri[3].innerHTML = "OK";
				flag3 = true;
			}else{
				veri[3].innerHTML = "请输入2-4位汉字";
				flag3 = false;
			}
		}
		idNumber.onblur = function(){
			if(idNumber.value.match(pattern.idNumber)){
				veri[5].innerHTML = "OK";
				flag4 = true;
			}else{
				veri[5].innerHTML = "请输入正确的身份证号码";
				flag4 = false;
			}
		}
		email.onblur = function(){
			if(email.value.match(pattern.email)){
				veri[6].innerHTML = "OK";
				flag5 = true;
			}else{
				veri[6].innerHTML = "请输入正确的邮箱地址";
				flag5 = false;
			}
		}
		button.addEventListener("click",function(){
				if(flag == true && flag1 == true && flag2 == true && flag3 == true && flag4 == true && flag5 == true && flag6 == true){
					alert("成功");
				}else{
					alert("验证失败");
				}
			});
	</script>
</body>
</html>


好帮手慕言 2020-03-18 11:05:55

同学你好,

1、验证密码:结束符是$,如下修改

http://img1.sycdn.imooc.com//climg/5e718f7809796ea404330085.jpg

2、姓名密验证不正确,可以参考下方修改:

http://img1.sycdn.imooc.com//climg/5e718d3e09236ca307130116.jpg

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

  • 提问者 Redamancy_Y6 #1
    老师,我按照你说的方法改了,但是用户名和登录密码还是不验证,而且手机号也不验证,是什么原因?
    2020-03-18 11:23:02
  • 提问者 Redamancy_Y6 #2
    麻烦看一下我上面的回答
    2020-03-18 11:23:35
  • 提问者 Redamancy_Y6 #3
    老师,手机号码不验证的问题我找到了但是没找到用户名和密码不验证的原因
    2020-03-18 11:28:39
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师