正则表达式
大写,小写,数字,英文特殊字符,至少满足三个
英文特殊字符范围:\x21-\x2f\x3a-\x40\x5b-\x60\x7B-\x7F
(?![0-9a-z]+
)
(
?
!
[
0
−
9
A
−
Z
]
+
)(?!^[0-9A-Z]+
)(?![0−9A−Z]+)(?![0-9\x21-\x2f\x3a-\x40\x5b-\x60\x7B-\x7F]+$)(?!^[a-zA-Z]+$)(?![a-z\x21-\x2f\x3a-\x40\x5b-\x60\x7B-\x7F]+KaTeX parse error: Undefined control sequence: \x at position 10: )(?!^[A-Z\̲x̲21-\x2f\x3a-\x4…)(?!1+KaTeX parse error: Undefined control sequence: \x at position 12: )[a-z0-9A-Z\̲x̲21-\x2f\x3a-\x4…
指定特殊字符范围:~!@#$%^&*()-_+?/
^(?![a-zA-Z]+
)
(
?
!
[
a
−
z
0
−
9
]
+
)(?![a-z0-9]+
)(?![a−z0−9]+)(?![A-Z0-9]+KaTeX parse error: Undefined control sequence: \W at position 9: )(?![A-Z\̲W̲_]+)(?![a-z\W_]+KaTeX parse error: Undefined control sequence: \W at position 9: )(?![0-9\̲W̲_]+)[a-zA-Z0-9~!@#
%^&*()\-_+?/]{8,12}
快捷验证
oschina提供了在线工具,可以快速验证表达式。网址:
https://tool.oschina.net/regex/
基本概念
(pattern)
匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中则使用 $0…$9 属性。要匹配圆括号字符,请使用 ‘(’ 或 ‘)’。
(?=pattern)
正向肯定预查(look ahead positive assert),在任何匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,“Windows(?=95|98|NT|2000)“能匹配"Windows2000"中的"Windows”,但不能匹配"Windows3.1"中的"Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
(?!pattern)
正向否定预查(negative assert),在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如"Windows(?!95|98|NT|2000)“能匹配"Windows3.1"中的"Windows”,但不能匹配"Windows2000"中的"Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
bootstrapvalidator
静态文件引用:
定义form:$(function () {
$('resetPwdForm').bootstrapValidator({
live: 'submitted', //enabled控件发生变化就验证。
message: ‘This value is not valid’,
feedbackIcons: {
valid: ‘glyphicon glyphicon-ok’,
invalid: ‘glyphicon glyphicon-remove’,
validating: ‘glyphicon glyphicon-refresh’
},
fields: {
oldPwd: {
message: '旧密码验证失败',
validators: {
notEmpty: {
message: '不能为空'
}
}
},
newPwd: {
validators: {
notEmpty: {
message: '不能为空'
},
stringLength: {
min: 8,
max: 12,
message: '长度8-12位'
},
regexp: {
regexp: ^(?![a-zA-Z]+$)(?![a-z0-9]+$)(?![A-Z0-9]+$)(?![A-Z\W_]+$)(?![a-z\W_]+$)(?![0-9\W_]+$)[a-zA-Z0-9~!@#$%^&*()_+?/]{8,12}$
message: 至少包含三种:大写字母、小写字母、数字、特殊字符(~!@#$%^&*()_+?/)
},
identical: {
field: 'againPwd',
message: '两次输入密码不一致'
}
}
},
againPwd: {
validators: {
notEmpty: {
message: '不能为空'
},
stringLength: {
min: 8,
max: 12,
message: '长度8-12位'
},
regexp: {
regexp: ^(?![a-zA-Z]+$)(?![a-z0-9]+$)(?![A-Z0-9]+$)(?![A-Z\W_]+$)(?![a-z\W_]+$)(?![0-9\W_]+$)[a-zA-Z0-9~!@#$%^&*()_+?/]{8,12}$
message: 至少包含三种:大写字母、小写字母、数字、特殊字符(~!@#$%^&*()_+?/)
},
identical: {
field: 'newPwd',
message: '两次输入密码不一致'
}
}
}
}
});
});
//newPwd 和againPwd 都需要定义identical
验证:
(
′
r
e
s
e
t
P
w
d
F
o
r
m
′
)
.
b
o
o
t
s
t
r
a
p
V
a
l
i
d
a
t
o
r
(
′
v
a
l
i
d
a
t
e
′
)
i
f
(
('resetPwdForm').bootstrapValidator('validate') if(
(′resetPwdForm′).bootstrapValidator(′validate′)if((‘resetPwdForm’).data(‘bootstrapValidator’).isValid()){
//验证通过,开始操作
} else {
//验证不通过
}
A-Z\x21-\x2f\x3a-\x40\x5b-\x60\x7B-\x7F ↩︎