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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
<!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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
<!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下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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