密码的正则表达式

Nic*_*ndo 2 javascript regex

我正在尝试使用正则表达式来满足密码至少 6 个字符的最低要求;1 个大写字母、1 个小写字母和 1 个数字。看起来很容易吗?我没有任何正则表达式“向前看”的经验,所以我会这样做:

if(!pwStr.match(/[A-Z]+/) || !pwStr.match(/[a-z]+/) || !pwStr.match(/[0-9]+/) ||
    pwStr.length < 6)
    //was not successful
Run Code Online (Sandbox Code Playgroud)

但我想将其优化为一个正则表达式,并在此过程中提高我的正则表达式技能。

AMI*_*ING 6

^.*(?=.{6,})(?=.*[a-zA-Z])(?=.*\d)(?=.*[!&$%&? "]).*$
Run Code Online (Sandbox Code Playgroud)
  • ^.*
    正则表达式的开始
  • (?=.{6,})
    密码长度至少包含 6 个字符
  • (?=.*[a-zA-Z])
    密码将包含至少 1 个大写字母和 1 个小写字母
  • (?=.*\d)
    密码将至少包含 1 个数字
  • (?=.*[!#$%&? "]) 密码将至少包含给定的特殊字符
  • .*$
    正则表达式结尾

这是您可以检查此正则表达式的网站 - http://rubular.com/

  • 哎呀。对不起。我以为是我编辑的。[a-zA-Z] 就像说任何 az 或 AZ,但他想要其中一个。它们必须是单独的前瞻。 (2认同)