【发布时间】:2015-03-12 08:52:04
【问题描述】:
我需要一个密码字段的正则表达式。
要求是:
密码长度必须为 8 到 20 个字符
必须至少包含一个字母和一个数字以及一个来自
!@#$%^&*()_+的特殊字符。不应以特殊字符开头
我试过了
^(?=.*[a-zA-Z])(?=.*\d)(?=.*[!@#$%^&*()_+])[A-Za-z\d!@#$%^&*()_+]{8,20}
它有效,但你如何限制特殊字符从密码开始?此外,如果您有比上述更高效的正则表达式,请提出建议。
谢谢
【问题讨论】:
-
我不会用正则表达式来做到这一点(甚至不认为这是可能的)。我会逐个字符地搜索字符串 char 并有我的计数器。
-
您不应该这样做 - 这是一种糟糕的安全做法。 xkcd.com/936
标签: javascript regex asp.net-mvc