正则表达式-至少6个字符,包括2个特殊字符

时间:2019-07-10 08:49:57

标签: javascript regex

我对正则表达式不太满意。我希望密码至少包含6个字符,包括2个特殊字符

我尝试了第一个正则表达式,但每次都会返回false ...

console.log(/^[a-zA-Z0-9!$#%]+$/.test(this.form.password));

我可以用另一种方式测试字符数,但是我想通过正则表达式包含两个特殊字符。

非常感谢您的帮助

1 个答案:

答案 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!$#%]*-匹配特殊字符和字母数字字符直到字符串的末尾
  • $-字符串结尾