/^(?=.*\d)(?=.*[a-zA-Z])(?=.*[\W_]).{10,20}$/
表示长度为10-20位包含数字、字母、特殊字符的密码
.表示匹配除“\n”(换行符)和"\r"(回车符)之外的任何单个字符。
*表示匹配前面的子表达式任意次。例如,zo*能匹配“z”,也能匹配“zo”以及“zoo”。*等价于{0,}。
()表示将( 和 ) 之间的表达式定义为“组”(group),并且将匹配这个表达式的字符保存到一个临时区域(一个正则表达式中最多可以保存9个),它们可以用 \1 到\9 的符号来引用。
(?=pattern)表示非获取匹配,正向肯定预查,在任何匹配pattern的字符串开始处匹配查找字符串,该匹配不需要获取供以后使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
\W 匹配任何非单词字符。等价于“[^A-Za-z0-9_]”
第一个括号里面表示必须匹配到数字\d
第二个括号表示必须匹配到字母
第三个括号表示必须特殊符号注意下划线_需要枚举出来,
三个条件由()括号取和集同事成立
不允许有中文
var pattern = /^[^\u4e00-\u9fa5]{0,}$/,
str = 'asdasd你好';
console.log(pattern.test(str));
只能是中文
var pattern = /^[\u4e00-\u9fa5]{0,}$/,
str = '你asdasd好';
console.log(pattern.test(str));