我对正则表达式不太满意。我希望密码至少包含6个字符,包括2个特殊字符
我尝试了第一个正则表达式,但每次都会返回false ...
console.log(/^[a-zA-Z0-9!$#%]+$/.test(this.form.password));
我可以用另一种方式测试字符数,但是我想通过正则表达式包含两个特殊字符。
非常感谢您的帮助
答案 0 :(得分:-1)
先查找6个字符,以确保输入中存在足够的字符。然后,重复两次:0个或多个普通字符,后跟一个特殊字符,以确保输入中至少有2个特殊字符。然后匹配0个或多个[特殊或普通]字符。
/^(?=.{6})(?:[a-z\d]*[!$#%]){2}[a-z\d!$#%]*$/i
https://regex101.com/r/ZyFZPm/2
^
-字符串的开头(?=.{6})
-至少6个字符(?:[a-z\d]*[!$#%]){2}
-重复两次:
[a-z\d]*
-0+个字母数字字符[!$#%]
-1个特殊字符[a-z\d!$#%]*
-匹配特殊字符和字母数字字符直到字符串的末尾$
-字符串结尾