密碼強度驗證示例

驗證密碼強度,示例規則:以 6-18位密碼,由數字、大小寫字母、特殊字符兩種以上,根據密碼的組合來判定密碼強度

效果示例

html代碼

<div class="row">
       <div class="col-md-12 ">
       <input type="password" id="password" class="form-control" name="password" placeholder="密碼">
       <label class="mt-1 labeltip" for="">8-18位,包含大寫字母、小寫字母、符號、數字中的2種以上</label>
       <label id="password-error" class="error col-md-12 passerrow mg-l" for="password"></label>
       </div>
</div>

js代碼示例:

$(function () {

    // 密碼驗證 6-18位密碼,由數字、大小寫字母、特殊字符兩種以上
    jQuery.validator.addMethod("isPwd", function (value, element) {
        value = jQuery.trim(value);
        let reg=/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9_A-Za-z\!\@\#\$\%\^\&\*\(\)\+\?\<\>\/\,\.]{8,18}$/;
        return this.optional(element) || reg.test(value);
    }, "請輸8-18位,包含大寫字母、小寫字母、符號、數字中的2種以上");
   
    let form = $('#form-register').validate({
        rules: {           
            password: {
                required: true,
                isPwd: true
            },
            confirmPassword: {
                required: true,
                equalTo: "#password"
            },           
        },
        messages: {           
            password: {
                required: '請輸入8-18位,包含字母、符號、數字中的2種以上'
            },
            confirmPassword: {
                required: '請輸入確認密碼',
                equalTo: '密碼輸入不一致,請重新輸入'
            },          
        }
    })

    let reg = /.*[A-Z]+.*/  // 是否包含大寫字母
    let reg2 = /.*[a-z]+.*/  // 是否包含小寫字母
    let reg3 = /.*[0-9]+.*/ // 包含數字
    let reg4=/.*[\!\@\#\$\%\^\&\*\(\)\+\?\<\>\/\,\.]+.*/ // 包含特殊字符
    let pwdstrong = 0;
    let pwdLevel = 0;  

    //密碼強度驗證
    $('#password').on('keyup', function () {
        let val = $.trim(this.value)
        if (!val) {
            $('.pwd-strength span').removeClass('strength-green')
            // $('.strength-name').text('')
            return
        }

        if (reg.test(val)) {
            pwdstrong += 1;
        }
        if (reg2.test(val)) {
            pwdstrong += 1;
        }
        if (reg3.test(val)) {
            pwdstrong += 1;
        }
        if (reg4.test(val)) {
            pwdstrong += 1;
        }
        $('.pwd-strength span').removeClass('strength-green').filter(':lt(' + pwdstrong + ')').addClass('strength-green');
        // $('.strength-name').text(pwdstrong === 3 ? "強" : pwdstrong === 2 ? "中" : "弱");
        pwdLevel = pwdstrong;
        pwdstrong = 0;
    })

})

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章