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

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

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

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

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

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


当前回答

实际上,我刚刚在这里复制了第一个答案,并将其转换为一个更方便的正则表达式,它需要一个大写、一个小写和至少8个字符,但接受“中间”的所有内容。

这是一个正则表达式示例,需要

长度至少为8个字符至少一个小写字母至少一个大写字母

重要提示:此正则表达式还将排除所有其他字符,例如数字、特殊字符,如$、#、,!等等-只要规则1。至3。匹配输入字符串

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

注意正则表达式末尾的“.”符号。这将匹配几乎任何字符(以及任何可读字符)

其他回答

我在前面的一个答案中找到了一个解决方案:

*至少8个字符,至少1个大写字母、1个小写字母、1位数字和1个特殊字符:

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

…不适用于我,但以下是一个简化版,效果很好(添加任何您喜欢的特殊字符,我在这里添加了#),并添加数字规则,就像您对字母的处理一样:

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

您可以将此正则表达式与多个前瞻断言(条件)一起使用:

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

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

至少一个大写英文字母,(?=.*?[A-Z])至少一个小写英文字母(?=.*?[a-z])至少一个数字,(?=.*?[0-9])至少有一个特殊字符(?=.*?[#?!@$%^&*-])长度至少为8。{8,}(带锚)

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

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

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

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

"^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[\\\\`~!@#$%^&/*()_+=[{}]\\[\\]|\\:;'\"<>.,?/-]).{8,}$";

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

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

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

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