我需要一个正则表达式来检查:

密码至少包含八个字符,包括至少一个数字,包括小写和大写字母以及特殊字符,例如#、?、!。

它不能是您的旧密码,也不能包含您的用户名、“密码”或“网站名称”

这是我的验证表达式,用于八个字符,包括一个大写字母、一个小写字母和一个数字或特殊字符。

(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$"

如果密码必须是八个字符,包括一个大写字母、一个特殊字符和字母数字字符,我怎么写?


当前回答

您可以使用下面的正则表达式模式检查密码是否符合您的期望。

((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[~!@#$%^&*()]).{8,20})

其他回答

至少八个字符,至少一个字母和一个数字:

"^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$"

至少八个字符,至少一个字母、一个数字和一个特殊字符:

"^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$"

至少八个字符,至少一个大写字母、一个小写字母和一个数字:

"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$"

至少八个字符,至少一个大写字母、一个小写字母、一位数字和一个特殊字符:

"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$"

最少八个字符,最多十个字符,至少一个大写字母,一个小写字母,一位数字和一个特殊字符:

"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,10}$"

希望以下方法有效。我在Azure自定义策略中尝试了此操作。

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@#$%^&*\-_+=[\]{}|\\:',?/`~"();!])([A-Za-z\d@#$%^&*\-_+=[\]{}|\\:',?/`~"();!]|\.(?!@)){6,16}$

对@anubhava的回答只是一个小小的改进:由于特殊字符仅限于键盘中的字符,因此对任何特殊字符都使用此选项:

^(?=.*?[A-Z])(?=(.*[A-Z]){1,})(?(.*[\d]){1,})(?=(.*[\W]){0,}(?!.*\s)。{8,}$

此正则表达式将强制执行以下规则:

至少一个大写英文字母至少一个小写英文字母至少一个数字至少一个特殊字符长度至少为8

使用以下Regex满足以下条件:

条件:

最少1个大写字母。最少1个小写字母。至少1个特殊字符。最少1个数字。最少8个字符。最多30个字符。

Regex公司:

/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[#$@!%&*?])[A-Za-z\d#$@!%&*?]{8,30}$/

使用此正则表达式,满足所有条件:

^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^A-Za-z0-9]).{8,}$

此正则表达式将强制执行以下规则:

至少一个大写字母(?=.*?[A-Z])至少一个小写字母(?=.*?[a-z])至少一个数字,(?=.*?[0-9])至少一个特殊字符,即前3个条件中不包含的任何字符,(?=.*?[^A-Za-z0-9])长度至少为8。{8,}