加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

创建正则表达式数组Javascript

发布时间:2020-12-14 06:29:31 所属栏目:百科 来源:网络整理
导读:我想创建一个功能,将密码与一些常见的愚蠢的密码进行比较,以便用户无法选择其中的一个,但是当我在脚本标签之间放置时,我已经写过的功能导致不能识别 javascript(由Firebug).我假设阵列创建是错误的. function unacceptable(pwd){ var unforgivable = [ /pass
我想创建一个功能,将密码与一些常见的愚蠢的密码进行比较,以便用户无法选择其中的一个,但是当我在脚本标签之间放置时,我已经写过的功能导致不能识别 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(pwd.match(re) != null);
}

工作演示:http://jsfiddle.net/jfriend00/cyVbC/3/

附:你不必把所有的词都放到一个数组中.您可以预先声明整个正则表达式,但是我认为将它们放在数组中,这样可以更容易地维护可读的代码.

也可能是这样的:

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

function unacceptable(pwd){
    return(pwd.match(unforgivable) != null);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读