Tôi muốn tạo một hàm so sánh mật khẩu với một số mật khẩu thường dùng, để người dùng không thể chọn một trong số này, nhưng hàm tôi đã viết cho đến thời điểm này, khi đặt giữa tập lệnh thẻ, không làm cho javascript được nhận diện (bởi Firebug). Tôi cho rằng việc tạo mảng có lỗi.Tạo mảng biểu thức chính quy Javascript
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;
}
Sử dụng [] để tạo mảng, pwd.match (ptrn) để đối sánh regex, vòng lặp for của bạn bị thiếu(), ptrn trong vòng lặp của bạn sẽ là chỉ mục mảng, không phải giá trị và bạn có thể chuyển sang thường xuyên cho vòng lặp hoặc thêm một kiểm tra hasOwnProperty – shesek
Và tạo ra các mảng regexes bên ngoài chức năng của bạn thay vì tái tạo nó mỗi khi hàm được gọi. Ngoài ra, lá cờ g là khá nhiều vô ích ở đây. – shesek
@shesek Tôi đã cố định vòng lặp nhưng nó nói khớp không phải là phương thức – Chris