【发布时间】:2012-01-02 16:07:24
【问题描述】:
我想创建一个函数,将密码与一些常见的白痴密码进行比较,这样用户就无法选择其中之一,但是我到目前为止编写的函数,当放在脚本标签之间时,不会导致没有 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;
}
【问题讨论】:
-
使用 [] 创建数组,使用 pwd.match(ptrn) 匹配正则表达式,您的 for 循环缺少 (),循环中的 ptrn 将是数组索引,而不是值,您应该可能切换到常规 for 循环或添加 hasOwnProperty 检查
-
并在函数外部创建正则表达式数组,而不是在每次调用函数时重新创建它。此外,g 标志在这里几乎没用。
-
@shesek 我修复了循环,但它说匹配不是一种方法
-
不知道连空字符串也是好密码。
标签: javascript regex arrays passwords