jq修改密码强度验证

话不多说直接上代码
HTML部分

<div class="pwdForm">
        <div class="class-pwd-title">修改密码</div>
        <div class="class-pwd-table">
        <div class="class-input-line">
            <label>原密码:</label>
            <input type="password" class="easyui-validatebox oldPassWord"
                   data-options="required:true,missingMessage:'不能为空'" maxlength="32" minlength="8">
        </div>
        <div class="class-input-line">
            <label>新密码:</label>
            <input type="password" class="easyui-validatebox newPassWord"
                   data-options="required:true,missingMessage:'不能为空'" maxlength="32" minlength="8">
        </div>
        <div class="class-input-line">
            <label>安全级别:</label>
            <span class="PwdStrength"></span>
        </div>
        <div class="class-input-line">
            <label>确认密码:</label>
            <input type="password" class="easyui-validatebox surePassWord"
                   data-options="required:true,missingMessage:'不能为空'" maxlength="32" minlength="8">
        </div>
        <div class="class-input-line" style="display: none" id="tooltip">
            <label>提示消息:</label>
            <span id="tooltipIfo" style="color:red;width: 150px;">
            </span>
        </div>
        </div>
        <div id="pwdtip" class="class-pwd-tip">
            <h4 style="margin:10px 0;">密码提示:</h4>
            长度为8-20个字符,支持数字,大小写字母和特殊字符且不允许有空格。
        </div>
        <div style="clear: both"></div>
        <div class="surePassWordBtn" id="password-button">
            <a href="#" iconCls="icon-vfp-save" id="sure-button" class="class-btn class-btn-sure">确定</a>
            <a href="#" iconCls="icon-vfp-save" id="id-return-button" class="class-btn class-btn-return">返回</a>
        </div>
    </div>

js部分

$(function(){
    $("body").keydown(function (event) {
        if (event.which == 13) {
            $("#sure-button").click();
        }
    });
    //返回按钮
    $("#id-return-button").on("click",function(){
        self.location = "/loginbfp.html";
    });
    $.ajax({
        url: '/user/getSessionUser',
        async: 'false',
        type: 'get',
        dataType: 'json',
        success: function (data) {
            if (data.code == 0) {
                passWordClcik();//修改密码点击事件
                newKeyup();//新密码键盘事件
                username = data.result.username;
            }
        }
    });
});

var username;
var checkNum;//校验密码强度返回值

//修改密码点击事件
function passWordClcik() {
    //确定按钮
    $('#sure-button').on('click', function () {
        var newPassWord = $('.newPassWord').val();
        var oldPassWord = $('.oldPassWord').val();
        var surePassWord = $('.surePassWord').val();
        var regPwd = /^\S+$/gi;
        if (newPassWord != surePassWord || surePassWord == "" || newPassWord == "" || oldPassWord == "") {
            if (surePassWord == "" || newPassWord == "" || oldPassWord == "") {
                $('#tooltip').show();
                $('#tooltipIfo').html("输入不能为空!");

            } else if (newPassWord != surePassWord) {
                $('#tooltip').show();
                $('#tooltipIfo').html("密码输入不一致!");
            }
        } else if (checkNum == 0) {
            $('#tooltip').show();
            $('#tooltipIfo').html("安全等级过低!");
        } else if (regPwd.test(surePassWord) != true) {
            $('#tooltip').show();
            $('#tooltipIfo').html("密码中不能包含空格!");
        } else if (surePassWord.length < 8 || surePassWord.length > 20) {
            $('#tooltip').show();
            $('#tooltipIfo').html("密码长度长度有误!");
        } else if (surePassWord == oldPassWord) {
            $('#tooltip').show();
            $('#tooltipIfo').html("新密码不可与原密码相同!");
        } else {
            resetPwd(hex_sha256(oldPassWord), hex_sha256(newPassWord));
        }
    });

}
//新密码键盘事件
function newKeyup() {
    $(".newPassWord").keyup(function () {
        var newPassWord = $('.newPassWord').val();
        var oldPassWord = $('.oldPassWord').val();
        checkNum = passCheckout(newPassWord, oldPassWord);
        if (checkNum == 0) {
            $('.PwdStrength').text('风险')
        } else if (checkNum == 1) {
            $('.PwdStrength').text('弱');
        } else if (checkNum == 2) {
            $('.PwdStrength').text('中');
        } else {
            $('.PwdStrength').text('强')
        }
    });
}

//密码强度检测
function passCheckout(newPwd, user) {
    var iRank = 0;
    newPwd.match(/[a-z]/g) && iRank++;
    newPwd.match(/[A-Z]/g) && iRank++;
    newPwd.match(/[0-9]/g) && iRank++;
    newPwd.match(/[^a-zA-Z0-9-z]/g) && iRank++;
    iRank = (iRank > 3 ? 3 : iRank);
    if (newPwd.length < 8 || iRank === 1 || newPwd === user || newPwd == user.split("").reverse().join("")) {
        iRank = 0;
    }
    if (iRank === 2) {
        if ((newPwd.match(/[0-9]/g) && newPwd.match(/[a-z]/g)) || (newPwd.match(/[0-9]/g) && newPwd.match(/[A-Z]/g))) {
            iRank = 1;
        }
    }
    return iRank;
}
//修改密码
function resetPwd(oldPassWord, newPassWord) {
    $.ajax({
        url: '/user/updatePassword.whtml',
        type: 'post',
        dataType: 'json',
        data: {
            B: oldPassWord,
            A: newPassWord
        },
        success: function (data) {
            if (data.code == 0) {
                $.messager.show({
                    title: '提示消息',
                    msg: '修改成功,即将退出到登录页面!',
                    timeout: 1500,
                    showType: 'slide'
                });
                $('#passWordPanel').dialog("close");
                $('#tooltip').hide();
                sessionStorage.clear();
                localStorage.clear();
                setTimeout(function () {
                    self.location = "/loginbfp.html";
                }, 1500)
            } else {
                $('#tooltip').show();
                $('#tooltipIfo').text(data.message);
            }
        }
    });
}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值