gpt4 book ai didi

javascript - 密码强度验证的正则表达式

转载 作者:数据小太阳 更新时间:2023-10-29 05:48:25 29 4
gpt4 key购买 nike

我写了一个可能用于密码强度验证的正则表达式:

^(?:([A-Z])*([a-z])*(\d)*(\W)*){8,12}$

表达式由四组组成:

  1. 零个或多个大写字符
  2. 零个或多个小写字符
  3. 零个或多个小数位
  4. 零个或多个非单词字符(!、£、$、% 等)

我希望它的工作方式是确定有多少组已匹配以确定密码的强度。因此,例如,如果只有一组匹配,它将很弱。如果四个组都匹配,那就强了。

我已经使用 Rubular (a Ruby regular expression editor). 测试了表达式

在这里我可以直观地看到有多少组匹配,但我想在 JavaScript 中执行此操作。我写了一个脚本来返回匹配组的数量,但结果与我在 Rubular 中看到的不一样。

我如何在 JavaScript 中实现这一点?我的正则表达式能胜任这项任务吗?

最佳答案

我认为您必须独立检查每个组。伪代码:

bool[] array = {};
array[0] = pwd.match(/[A-Z]/);
array[1] = pwd.match(/[a-z]/);
array[2] = pwd.match(/\d/);
array[3] = pwd.match(/[!_.-]/);

int sum = 0;
for (int i=0; i<array.length; i++) {
sum += array[i] ? 1 : 0;
}

switch (sum) {
case 0: print("weird..."); break;
case 1: print("weak"); break;
case 2: print("ok"); break;
case 3: print("strong"); break;
case 4: print("awesome"); break;
default: print("weird..."); break;
}

关于javascript - 密码强度验证的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15678619/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com