0

パスワードを検証しようとしていますが、問題がなければ、配列の正規表現に一度だけ保持されます。Mozilla ブラウザでスクリプトを実行すると、「seguridadPass [i]. テストは関数ではありません。また、使用されていない正規表現である配列「comprobaciones」を削除する方法も知りたいです。ご協力ありがとうございました。

コード

JAVSCRIPT

var compMay = /[A-ZÑ]/;
var compMin = /[a-zñ]/;
var compNum = /(?=.*\d)/;
var compCarEsp = /[!@#$%^&*(){}[\]<>¿¡?/|.:;_-]/;
var seguridadPass = []; 
seguridadPass.push(compMin,compMay,compNum,compCarEsp);
comprobaciones = [];

$('#write').keyup(function(){

var pass = $(this).val();
if(pass!=''){
    for(i=0;i<seguridadPass.length;i++){
        if(seguridadPass[i].test(pass)){
            //alert(seguridadPass[i]);
            for(j=0;j<comprobaciones.length;j++){
                if(comprobaciones[j]!=seguridadPass[i]){
                    comprobaciones.push(seguridadPass[i]);
                }
            }
        }
    }
}
else{
    comprobaciones.splice(0,comprobaciones.length);
    //comprobaciones = [];
}
});
4

2 に答える 2

3
seguridadPass.push(compMin,compMay,compNum,compCarEsp,8);

8 は正規表現ではありません。

于 2013-09-24T14:57:16.573 に答える
0

配列には主にRegExpオブジェクトが含まれていますが、8ここで配列に数値をプッシュしました:

seguridadPass.push(compMin,compMay,compNum,compCarEsp,8);

JavaScriptのNumber型にはメソッドがありませんtest*。を削除する8と、動作するはずです:

seguridadPass.push(compMin,compMay,compNum,compCarEsp);

* で提供しない限りNumber.prototype

于 2013-09-24T14:57:50.630 に答える