Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
            
                    
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        6年前关闭。
                    
                
        

我想对密码执行JavaScript验证。

它必须满足以下条件:


至少6个字符长
至少1个大写字母
至少1个小写字母
至少1个号码
至少1个标点符号

最佳答案

这是使用正则表达式数组实现此目的的一种方法:


/**
  * Returns true if pw is a valid password.
  */

function isValid(pw) {

    if (! pw) {
        return false;
    }

    var rgx = [
        /.{6,}/,
        /[A-Z]/,
        /[a-z]/,
        /[0-9]/,
        /[@#$&*^%!+=\/\\[\]|?.,<>)(;:'"~`]/
    ];

    for (var i = 0; i < rgx.length; i++) {
        if (rgx[i].test(pw) === false) {
            return false;
        }
    }
    return true;
}


Working example

通过将regex数组作为参数传递,可以使其更加灵活。

More reading about regex.test() here



这是更具可读性的学术版:

function isValid(s) {
    // check for null or too short
    if (!s || s.length < 6) {
        return false;
    }
    // check for a number
    if (/[0-9]/.test(s) === false) {
        return false;
    }
    // check for a capital letter
    if (/[A-Z]/.test(s) === false) {
        return false;
    }
    // check for a lowercase letter
    if (/[a-z]/.test(s) === false) {
        return false;
    }
    // check for punctuation mark
    if (/[@#$&*^%!+=\/\\[\]|?.,<>)(;:'"~`]/.test(s) === false) {
        return false;
    }
    // all requirements have been satisfied
    return true;
}


这是working example

关于javascript - 密码验证至少为6个字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18367258/

10-09 22:30