javascript - 验证密码至少为 6 个字符

标签 javascript regex validation

我想对密码执行 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

您可以通过将正则表达式数组作为参数传递来使其更加灵活。

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/

相关文章:

javascript - 只允许具有特定字符正则表达式的特定模式 - javascript

javascript - 无法添加 particles.js

javascript - 为什么 event.preventDefault() 并不总是有效?

c# - 如何修复从删除条件注释中删除 HTML 注释的正则表达式?

jQuery 验证 : How to not display errors? 或如何将错误显示为工具提示?

javascript - JS 分割日语字符串

java - Struts 2 中的验证和主题

javascript - 使用指令将 jQueryUI 主题应用到带有 Angularjs 的按钮时出现 TypeError

javascript - 菜单不会显示或工作

regex - 使用正则表达式解析文本