练习已完成,老师帮忙看一下有没有错误的地方
来源:4-8 编程练习
为爱修行
2019-03-13 22:08:54
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
* {
padding: 0;
margin: 0;
}
body {
min-width: 1000px;
font-family: "宋体";
}
.container {
margin: 0 auto;
width: 1000px;
}
.caption {
height: 50px;
line-height: 50px;
padding: 0 10px;
background: lightblue;
color: #fff;
}
.content {
background: #eee;
padding: 50px 0 0 200px;
}
.content .item {
width: 90%;
height: 25px;
line-height: 25px;
font-size: 18px;
position: relative;
}
.content .item label {
display: inline-block;
width: 120px;
text-align: right;
}
.content .item input,
.content .item select {
width: 210px;
height: 21px;
}
.content .item .item_ {
font-size: 14px;
}
.content #handup {
width: 80px;
height: 40px;
margin: 50px 0 50px 180px;
background: lightblue;
color: #fff;
outline: none;
border: none;
cursor: pointer;
border-radius: 10px;
font-size: 18px;
}
</style>
</head>
<body>
<div class="container">
<div class="caption">用户注册</div>
<div class="content">
<div class="item">
<label for="userAccount">用户名:</label>
<input class="input" type="text" id="userAccount" placeholder=" 用户设置成功后不可修改">
<span class="item_"></span>
</div>
<br>
<!--_____________________________________________________________________________________________-->
<div class="item">
<label for="userPass">登陆密码:</label>
<input class="input" type="password" id="userPass" placeholder=" 6-18位字母,数字或符号">
<span class="item_"></span>
</div>
<br>
<!--_____________________________________________________________________________________________-->
<div class="item">
<label for="userPass_">确认密码:</label>
<input class="input" type="password" id="userPass_">
<span class="item_"></span>
</div>
<br>
<!--_____________________________________________________________________________________________-->
<div class="item">
<label for="userName">姓名:</label>
<input class="input" type="text" id="userName" placeholder=" 请输入姓名">
<span class="item_"></span>
</div>
<br>
<!--_____________________________________________________________________________________________-->
<div class="item">
<label for="sex">性别:</label>
<select id="sex">
<option value="male">男</option>
<option value="female">女</option>
</select>
</div>
<br>
<!--_____________________________________________________________________________________________-->
<div class="item">
<label for="information">身份证号:</label>
<input class="input" type="text" id="information" placeholder=" 请输入身份证号">
<span class="item_"></span>
</div>
<br>
<!--_____________________________________________________________________________________________-->
<div class="item">
<label for="email">邮箱:</label>
<input class="input" type="email" id="email" placeholder=" 请输入正确邮箱格式">
<span class="item_"></span>
</div>
<br>
<!--_____________________________________________________________________________________________-->
<div class="item">
<label for="telephone">手机号码:</label>
<input class="input" type="tel" id="telephone" placeholder=" 请输入您的手机号码">
<span class="item_"></span>
</div>
<br>
<!--__________________________________________________________________________________________________-->
<div id="end">
<button id="handup">提交</button>
</div>
</div>
</div>
</body>
</html>
<script type="text/javascript">
var userAccount = document.getElementById("userAccount");
var userPass = document.getElementById("userPass");
var userPass_ = document.getElementById("userPass_");
var userName = document.getElementById("userName");
var information = document.getElementById("information");
var email = document.getElementById("email");
var telephone = document.getElementById("telephone");
var handup = document.getElementById("handup");
var input = document.getElementsByClassName("input");
//当鼠标离开用户名输入框,产生验证
var test = [false, false, false, false, false, false, false];
var items = document.querySelectorAll(".item_"); //获取所有提示元素的下标
var reg = /正则/;
var submit = false;
userAccount.onblur = function() { //验证用户名
var reg = /^\w{6,20}$/;
if (!reg.exec(this.value)) {
items[0].innerHTML = "请输入6--20位数字、字母、'_',字母开头";
items[0].style.color = "red";
} else {
items[0].innerHTML = "OK";
items[0].style.color = "green";
test[0] = true;
}
}
userPass.onblur = function() {
var reg = /^\S{6,18}$/;
if (!reg.exec(this.value)) {
items[1].innerHTML = "6-18位,包括数字字母或符号,中间不能有空格";
items[1].style.color = "red";
} else {
items[1].innerHTML = "OK";
items[1].style.color = "green";
test[1] = true;
}
}
userPass_.onblur = function() {
if (this.value != userPass.value || this.value == "") {
items[2].innerHTML = "两次输入密码不一致";
items[2].style.color = "red";
} else {
items[2].innerHTML = "OK";
items[2].style.color = "green";
test[2] = true;
}
}
userName.onblur = function() {
var reg = /^[\u4e00-\u9fa5]{2,4}$/;
if (!reg.exec(this.value)) {
items[3].innerHTML = "真实姓名,两位到四位的中文汉字";
items[3].style.color = "red";
} else {
items[3].innerHTML = "OK";
items[3].style.color = "green";
test[3] = true;
}
}
information.onblur = function() {
var reg = /^\d{14}[0-9x]$|^\d{17}[0-9x]$/;
if (!reg.exec(this.value)) {
items[4].innerHTML = "要求15位或者18位的数字,18位时最后一位可能是x";
items[4].style.color = "red";
} else {
items[4].innerHTML = "OK";
items[4].style.color = "green";
test[4] = true;
}
}
email.onblur = function() {
var reg = /^\w+@\w+\.[a-zA-Z_]+\.?[a-zA-Z_]+$/;
if (!reg.exec(this.value)) {
items[5].innerHTML = "邮箱格式不对";
items[5].style.color = "red";
} else {
items[5].innerHTML = "OK";
items[5].style.color = "green";
test[5] = true;
}
}
telephone.onblur = function() {
var reg = /^\d{11}$/;
if (!reg.exec(this.value)) {
items[6].innerHTML = "手机号码格式不对";
items[6].style.color = "red";
} else {
items[6].innerHTML = "OK";
items[6].style.color = "green";
test[6] = true;
}
}
//注册的时候,必须前面所有数据都是正确的 才能提交
handup.onclick = function() {
submit = false;
for (var i = 0; i < input.length; i++) {
test[i] = false;
input[i].onblur();
}
for (var i = 0; i < test.length; i++) {
if (test[i] == false) {
break;
} else if (i == test.length - 1) {
submit = true;
}
}
if (submit == true) {
alert("确认提交");
console.log(test);
} else {
alert("你填写的信息有误!");
console.log(test);
}
}
</script>1回答
你好,测试了代码整体效果还是不错的。
1、用户名正则验证与提示信息不相符:

可以修改为:

2、手机号码的验证可以更具体一些,例如:

自己可以重新测试下,祝学习愉快 !
相似问题