Skip to content

密码相关正则表达式大全

Published: at 01:55 PMSuggest Changes

需求

密码相关正则

The same list as string (between double quotes): ”!”#$%&’()*+,-./:;<=>?@[]^_`{|}~“

有意思的

正则

第一种

至少 8-16 个字符,至少 1 个大写字母,1 个小写字母和 1 个数字,其他可以是任意字符:

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

/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[\s\S]{8,16}$/ 

其中 [\s\S] 中的 \s 空白符,\S 非空白符,所以 [\s\S] 是任意字符。也可以用 [\d\D][\w\W] 来表示。

至少 8 个字符,至少 1 个大写字母,1 个小写字母和 1 个数字,不能包含特殊字符(非数字字母):

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

至少 8 个字符,至少 1 个字母,1 个数字和 1 个特殊字符:

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

至少 8 个字符,至少 1 个大写字母,1 个小写字母和 1 个数字:

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

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

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

最少 8 个最多十个字符,至少 1 个大写字母,1 个小写字母,1 个数字和 1 个特殊字符:

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

第二种

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

第三种

正则表达式没有 AND 运算符,所以编写正则表达式与有效密码匹配是非常困难的,当有效性被某些东西和其他东西等定义时… 但是,正则表达式确实有 1 个 OR 运算符,所以只需应用 DeMorgan 的定理,并编写 1 个与无效密码相匹配的正则表达式: 任何少于 8 个字符或任何没有数字或任何没有大写字母或任何没有小写字母或任何没有特殊字符的任何东西。

所以:^(.{0,7}|[^0-9]_|[^a-z]_|[^a-z]_|[a-zA-Z0-9]_)$,如果有什么匹配的话,这是 1 个无效的密码。

第四种

由于特殊字符仅限于键盘中的特殊字符,因此可用于任何特殊字符:

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

这个正则表达式将强制执行这些规则:

第五种

根据我的情况,我遇到了最受欢迎的答案。例如,我的验证失败,其中包含;或 [等字符。我对 white-listing 我的特殊字符不感兴趣,所以我用 [^\w\s] 作为测试 – 简单地把非字符 (包括数字) 和非空格字符放在一起。总而言之,这是对我有用的

/^(?=._?[A-Z])(?=._?[a-z])(?=._?[0-9])(?=._?[^\w\s]).{8,}$/ 简单演示涵盖各种情况

第六种

导入 JavaScript 文件 jquery.validate.min.js

您可以使用此方法:

JavaScript 代码:

$.validator.addMethod('pwcheck', function (value) {
  return (
    /[\@\#\$\%\^\&\*\(\)\_\+\!]/.test(value) &&
    /[a-z]/.test(value) &&
    /[0-9]/.test(value) &&
    /[A-Z]/.test(value)
  );
});

第七种

尝试这个:

表达式:

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

可选特殊字符:

表达式:

/^(?=._\d)(?=._[a-zA-Z]).{6,20}$/

如果不需要最小和最大条件,则删除.{6, 16}

参考文章


Previous Post
ElementUI 禁用浏览器自动填充用户名密码
Next Post
LeetCode 34:在排序数组中查找元素的第一个和最后一个位置