4-8练习

来源:4-8 编程练习

夕落呀

2019-01-05 00:49:10

<!DOCTYPE html>

<html>


<head>

    <meta charset="UTF-8">

    <title>Document</title>

    <style>

     *{

     padding: 0;

     margin: 0;

     }

     .wrap{

     width: 1000px;

     margin: 50px auto;

     }

     .wrap .title{

     width: 100%;

     padding: 8px 0;

     background: #3092d1;

     color: #fff;

     text-indent: 32px;

     }

     .wrap .reg{

     background: #eee;

     }

     .reg .form{

     width: 100%;

margin: 0 auto;

padding: 50px 0 200px 0;

text-align: center;

position: relative;

     }

     .reg .form .item{

margin-bottom: 20px;

color: #666;

font-size: 16px;

position: relative;

     }

     .reg .form .item label{

     display: inline-block;

     min-width: 100px;

     text-align: right;

     }

     .reg .form .item input{

     width: 171px;

     }

     .reg .form .item .itemText{

     position: absolute;

     top: 0;

     left: 650px;

     color: red;

     font-size: 14px;

     }

     .reg .form .btn{

     position: absolute;

     width: 80px;

     border: 0;

     outline: 0;

background: #2375ba;

padding: 10px 7px;

color: #fff;

font-size: 18px;

border-radius: 5px;

left: 500px;

bottom: 110px;

     }

     .reg .form .btn:active{

     bottom: 109px;

     left:501px;

     }

    </style>

</head>


<body>

<div id="wrap" class="wrap">

<div class="title">用户注册</div>

<div id="reg" class="reg">

<form id="form" class="form">

<div class="item">

<label>用户名:</label>

<input type="text" name="userName" id="userName">

<span class="itemText"></span>

</div>

<div class="item">

<label>登录密码:</label>

<input type="password" name="password" id="password">

<span class="itemText"></span>

</div>

<div class="item">

<label>确认密码:</label>

<input type="password" name="repassword" id="repassword">

<span class="itemText"></span>

</div>

<div class="item">

<label>姓名:</label>

<input type="text" name="idName" id="idName">

<span class="itemText"></span>

</div>

<div class="item">

<label>性别:</label>

<select name="" id="sex" style="width: 171px;">

<option value="man">男</option>

<option value="women">女</option>

</select>

<span class="itemText"></span>

</div>

<div class="item">

<label>身份证号码:</label>

<input type="text" name="idcard" id="idcard">

<span class="itemText"></span>

</div>

<div class="item">

<label>邮箱:</label>

<input type="text" name="email" id="email">

<span class="itemText"></span>

</div>

<div class="item">

<label>手机号码:</label>

<input type="text" name="phone" id="phone">

<span class="itemText"></span>

</div>

<button id="btn" class="btn">提交</button>

</form>

</div>

</div>

</body>

<script type="text/javascript">

var obj = {

userName: document.querySelector('#userName'),

password: document.querySelector('#password'),

repassword: document.querySelector('#repassword'),

idName: document.querySelector('#idName'),

idcard: document.querySelector('#idcard'),

email: document.querySelector('#email'),

phone: document.querySelector('#phone'),

itemTexts: document.querySelectorAll('.itemText'),

btn: document.querySelector('#btn'),

input1: false,

input2: false,

input3: false,

input4: false,

input5: false,

input6: false,

input7: false

}


obj.userName.onblur = function(){

let reg = /^[a-zA-Z]\w{4,19}$/;

if(!reg.exec(obj.userName.value)){

obj.itemTexts[0].innerHTML = '6-20位字母、数字或“_”,字母开头';

}else{

obj.itemTexts[0].innerHTML = 'ok';

obj.input1 = true;

}

}

obj.password.onblur = function(){

let reg = /^\S{6,18}$/;

if(!reg.exec(obj.password.value)){

obj.itemTexts[1].innerHTML = '6-18位,包括数字字母或符号,中间不能有空格';

}else{

obj.itemTexts[1].innerHTML = 'ok';

obj.input2 = true;

}

}

obj.repassword.onblur = function(){

if(obj.repassword.value == ''){

obj.itemTexts[2].innerHTML = '请设置密码';

}else {

if(obj.repassword.value != obj.password.value){

obj.itemTexts[2].innerHTML = '两次密码不一致';

}else{

obj.itemTexts[2].innerHTML = 'ok';

obj.input3 = true;

}

}

}

obj.idName.onblur = function(){

let reg = /^[\u4e00-\u9fa5]{2,4}$/;

if(!reg.exec(obj.idName.value)){

obj.itemTexts[3].innerHTML = '两位到四位的中文';

}else{

obj.itemTexts[3].innerHTML = 'ok';

obj.input4 = true;

}

}

obj.idcard.onblur = function(){

let reg = /^\d{15}$|^\d{18}$|^\d{17}x$/;

if(!reg.exec(obj.idcard.value)){

obj.itemTexts[5].innerHTML = '请输入18位身份证号码';

}else{

obj.itemTexts[5].innerHTML = 'ok';

obj.input5 = true;

}

}

obj.email.onblur = function(){

let reg = /^\w+@(?:\w+\.)+[a-zA-Z]{2,}$/;

if(!reg.exec(obj.email.value)){

obj.itemTexts[6].innerHTML = '邮箱格式不正确';

}else{

obj.itemTexts[6].innerHTML = 'ok';

obj.input6 = true;

}

}

obj.phone.onblur = function(){

let reg = /^13\d{9}$|^15[^4]\d{8}$|^18(?:[^134])\d{8}$|^147\d{8}$/;

if(!reg.exec(obj.phone.value)){

obj.itemTexts[7].innerHTML = '手机号码格式不正确';

}else{

obj.itemTexts[7].innerHTML = 'ok';

obj.input7 = true;

}

}

obj.btn.onclick = function(){

if(obj.input1 == false || obj.input2 == false || obj.input3 == false || obj.input4 == false || obj.input5 == false || obj.input6 == false || obj.input7 == false){

obj.itemTexts[0].innerHTML = '6-20位字母、数字或“_”,字母开头';

obj.itemTexts[1].innerHTML = '6-18位,包括数字字母或符号,中间不能有空格';

obj.itemTexts[2].innerHTML = '请设置密码';

obj.itemTexts[3].innerHTML = '两位到四位的中文';

obj.itemTexts[5].innerHTML = '请输入18位身份证号码';

obj.itemTexts[6].innerHTML = '邮箱格式不正确';

obj.itemTexts[7].innerHTML = '手机号码格式不正确';

}else{

alert('验证成功');

}

}

</script>

</html>

老师帮忙看看正则写的有问题吗? js部分还有没有更优化的 感觉写的复杂

写回答

1回答

好帮手慕夭夭

2019-01-06

你好同学 ,当点击提交的时候 ,如果验证没有通过 , 提示信息显示里面就消失了 。这是因为form有默认的提交行为 ,它会在提交后刷新页面 ,所以提示信息就没有了 。在提交事件中 ,设置如下阻止默认行为 :

http://img.mukewang.com/climg/5c317d99000142f907090141.jpg

以上是阻止默认行为的方法 。祝学习愉快 ,望采纳 。

0

0 学习 · 4826 问题

查看课程

相似问题

2-8练习

回答 1

2-8 编程练习

回答 1

2-9练习

回答 1