【问题标题】:creating a regex to password validate创建一个正则表达式来验证密码
【发布时间】:2022-11-25 03:00:03
【问题描述】:

我需要帮助创建一个正则表达式来:至少 1 个数字,只有英文字母,至少一个特殊字符 (@!#$%^&*()-+_),没有空格并且连续 3 个相同的字母.

泰!

    function passwordValidated() {

    var password = document.getElementById("password").value;
    var passMsg = document.getElementById("passMsg");

        if (password.length > 6 && password.length > 12) {
        passMsg.innerHTML = "password must contain above 6 charcters and below 12";
        return false;
    }
        var specialChar = /[@!#$%^&*()-+_]/;
        if (!specialChar.test(password)) {
            passMsg.innerHTML = "password must contain a special character";
            return false;
        }
        var numberCheck = /(?=\S* [\d])/;
        if (!numberCheck.test(password)) {
            passMsg.innerHTML = "password must contain at least one number";
            return false;
        }
    passMsg.innerHTML = "";
    return true;
}

这是我现在的代码。

【问题讨论】:

    标签: javascript html css


    【解决方案1】:
    const validators: ((s: string) => true | string)[] = [
        s => s.length >= 6 || "password must contain above 6 charcters and below 12",
        s => s.length <= 12 || "password must contain above 6 charcters and below 12",
        s => /[@!#$%^&*()-+_]/.test(s) || "password must contain a special character",
        s => /d/.test(s) || "password must contain at least one number",
        s => !/(.)/.test(s) || "not 3 same letters in a row",
        s => /^[@!#$%^&*()-+_w]+$/.test(s) || "only letters in English"
    ]
    
    function validate (value: string, validators: ((s: string) => true | string)[]) {
        for (let v of validators) {
            let r = v(value);
            if (r !== true) return r;
        }
        return true;
    }
    
    console.log([
        validate('asd', validators),
        validate('asdhakufhskuydgsiyug', validators),
        validate('asdj$hgsd', validators),
        validate('asdj$4h gsd', validators),
        validate('asdj$4hgsd', validators),
    ])
    

    受 Quasar(Vue 框架)输入字段验证的启发

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-14
      • 2011-05-06
      • 2016-10-19
      • 2011-03-24
      • 1970-01-01
      相关资源
      最近更新 更多