js 正则表达式校验必须包含字母、数字、特殊字符

1.情景展示

  在注册时,密码要求必须同时包含:字母、数字、特殊字符,如何实现?

2.原因分析

  用正则表达式进行校验,是最方便的! 

3.解决方案

// 密码必须由 8-64位字母、数字、特殊符号组成
var reg = /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,.\/]).{8,64}$/;
                    
if (reg.test(password)) {// 验证通过
    
}

4.实际应用

HTML片段

<table class="table_add" border="0" width="100%">
<tr>
    <td align="right" class="FormItemText" width="30%">
        密码:
    </td>
    <td class="FormItemControl" width="70%">
        <input type="hidden" name="USERID" value="${param.USERID}">
        <input type="password" class="TextBox" id="viewAdd_userPassword"
            name="USERPASSWORD"
            title="密码长度为8-64个字符,必须包括数字、字母、特殊字符"/>
    </td>
</tr>
<tr>
    <td align="right" class="FormItemText">
        确认密码:
    </td>
    <td class="FormItemControl">
        <input type="password" class="TextBox" id="viewAdd_userConPassword""/>
    </td>
</tr>
</table> 

JAVASCRIPT片段

/**
 * form表单提交前,密码校验
 */
function validatePassword() {
    var password = $get('viewAdd_userPassword').value;
    // 去掉空格
    password = password.replace(/\s/g,"");

    if ("" != password) {
        // 密码必须由 8-64位字母、数字、特殊符号组成
        var reg = /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,.\/]).{8,64}$/;
        
        if (reg.test(password)) {// 验证通过
            // form表单提交前,去除空格
            $get('viewAdd_userPassword').value = password;
            var password2 = $get('viewAdd_userConPassword').value;
            if (password2 != password) {// 密码不一致
                Dialog.Alert("消息提示", "两次输入的密码不一致,请重新输入!", function (result) {
                    $get("viewAdd_userPassword").focus();
                }, null, 50);
                
                return false;
            }
            
            return true;
        } else {
            Dialog.Alert("消息提示", "密码长度为8-64个字符,必须包括数字、字母、特殊字符!", function (result) {
                $get("viewAdd_userPassword").focus();
            }, null, 50);
        }
        
        return false;
    } else {
        Dialog.Alert("消息提示", "请输入新密码!", function (result) {
            $get("viewAdd_userPassword").focus();
        }, null, 50);
    }
    
    return false;
}

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

 相关推荐:

猜你喜欢

转载自www.cnblogs.com/Marydon20170307/p/10314699.html
今日推荐