gpt4 book ai didi

javascript - 创建正则表达式 Javascript 数组

转载 作者:行者123 更新时间:2023-12-03 01:09:35 26 4
gpt4 key购买 nike

我想创建一个函数,将密码与一些常见的愚蠢密码进行比较,以便用户无法选择其中一个,但是我到目前为止编写的函数,当放在脚本标记之间时,不会导致 javascript被识别(被Firebug)。我认为数组创建有问题。

function unacceptable(pwd){
var unforgivable = [
/password/gi, /*g matches any occurance of sequence, i checks case insensitive*/
/12345678/g,
/8675309/g,
/[a-z]{8,}/gi,
/qwerty/gi,
/asdfg/gi,
/qazwsx/gi,
/zxcvb/gi,
/letmein/gi,
/trustno1/gi,
/omnicloud/gi,
/monkey/gi];
for (var i=0; i<unforgivable.length; i++)
if(pwd.match(unforgivable[i])) return true;
return false;
}

最佳答案

您不需要循环来测试每个单词,因为您可以将它们全部放入一个正则表达式中(由 | 字符分隔),并让正则表达式引擎在以下位置查找其中的任何一个单词:一次。你可以这样做:

function unacceptable(pwd){
var unforgivable = [
"password",
"12345678",
"8675309",
"[a-z]{8,}",
"qwerty",
"asdfg",
"qazwsx",
"zxcvb",
"letmein",
"trustno1",
"omnicloud",
"monkey"
];
var re = new RegExp(unforgivable.join("|"), "i");
return re.test(pwd);
}

这里的工作演示:http://jsfiddle.net/jfriend00/cyVbC/

附注您不必将所有单词放入数组中。您可以预先声明整个正则表达式,但我认为像这样将它们放入数组中可以使代码更具可读性,更易于维护。

也可能是这样的:

var unforgivable = /password|12345678|8675309|[a-z]{8,}|qwerty|asdfg|qazwsx|zxcvb|letmein|trustno1|omnicloud|monkey/i;

function unacceptable(pwd){
return unforgivable.test(pwd);
}

关于javascript - 创建正则表达式 Javascript 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8207066/

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