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 ;
}

  验证座机号

var regex = /^(0\d{2}-\d{8})|(0\d{3}-\d{7})$/;

  验证邮箱

var regex = /^([a-z0-9A-Z]+[-|_|\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\.)+[a-zA-Z]{2,}$/;

  2022年6月7日17:25:55

密码强度校验

function CheckPwd(pwdValue) {
    var pwd = /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_!@#$%^&*`~()-+=]+$)(?![a-z0-9]+$)(?![a-z\W_!@#$%^&*`~()-+=]+$)(?![0-9\W_!@#$%^&*`~()-+=]+$)[a-zA-Z0-9\W_!@#$%^&*`~()-+=]/;
    if (!pwd.test(pwdValue)) {
        alert("密码必须包含大写字母,小写字母,数字,特殊符号`@#$%^&*`~()-+=`中任意3项");
        return false;
    }
}

 

写在最后

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

 相关推荐:

posted @ 2019-01-24 15:22  Marydon  阅读(24960)  评论(2编辑  收藏  举报