-
Notifications
You must be signed in to change notification settings - Fork 0
/
step3.js
78 lines (72 loc) · 1.64 KB
/
step3.js
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
// 常见场景:表单提交
// from 表单
const from = {
username: 'amdin',
password: 'admin',
tel: '188xxxx888',
email: '',
// ...
}
// 登陆页
function loginPage () {
if (from.username === '') {
// 必填项
// 设置input框聚焦
// 设置input框变为红色
// alert提示或者input框下红字提示
return
}
if (from.password.length < 6) {
// 长度过短
// ...
return
}
submitFrom();
}
// 注册页
function loginPage () {
if (from.username === '') {
// 必填项
// 设置input框聚焦
// 设置input框变为红色
// alert提示或者input框下红字提示
return
}
if (from.password.length <= 6) {
// 长度过短
// ...
return
}
// 正则匹配电话号码格式
if (from.tel){ return }
// 正则匹配邮箱格式
if (from.email){ return }
// ...
submitFrom();
}
// 用户信息修改页
function loginPage () {
if (from.username === '') {
// 必填项
// 设置input框聚焦
// 设置input框变为红色
// alert提示或者input框下红字提示
return
}
if (from.password.length <= 6) {
// 长度过短
// ...
return
}
// 正则匹配电话号码格式
if (from.tel){ return }
// 正则匹配邮箱格式
if (from.email){ return }
// ...
submitFrom();
}
// 项目中弥漫着copy + paste,写登录页去注册页复制,写修改页去登陆页复制
// vendor.js 被webpack打包3遍,js体积较大
// 优化方式:统一封装业务组件,多处引用;或封装utils公共函数
// node提供接口,要再写一遍
// 思考:策略升级,如何用策略模式重构?