常见正则表达式用例

常见正则表达式用例


一、邮箱正则

1. 正则表达式

/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/

2. JS邮箱校验例子

function checkEmail(){
    var emailadd = document.getElementById("emailId").value;
    var emailTip = document.getElementById("emailTip");

    if(emailadd == "" || emailadd.length == 0){
        emailTip.innerHTML = "!请输入邮箱";
        emailTip.style.color = "red";
        return false;
    }else if(!/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(emailadd)){
        emailTip.innerHTML = "!请输入正确的邮箱";
        emailTip.style.color = "red";
        return false;
    }else{
        emailTip.innerHTML = "正确";
        emailTip.style.color = "green";
        return true;
    }
}

二、密码正则

1. 常用密码规则

正则表达式
长度8~16位,数字、字母、字符至少包含两种。
^((?=.*\d)(?=.*\D)|(?=.*[a-zA-Z])(?=.*[^a-zA-Z]))^.{8,16}$

解释说明
* ^.{8,16}$:密码长度为8~16位;
* ((?=.*\d)(?=.*\D)|(?=.*[a-zA-Z])(?=.*[^a-zA-Z])) : 数字、字母、符号至少包含两种。其中:数字、字母、字符至少包含两种,可分为4种情况:数字字母,数字符号,字母符号,数字字母符号:
* (?=.*\d)(?=.*\D):必须包含数字和非数字(包括:数字字母,数字符号,数字字母符号)
* |(?=.*[a-zA-Z])(?=.*[^a-zA-Z]):或者必须包含字母和非字母(包括:符号数字,符号字母,符号数字字母)

2. 密码分级校验

正则表达式
至少有一个大写,一个小写, 一个特殊字符,长度要是8:
(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$

JS密码分级校验例子

function checkPassword(){
    var password = document.getElementById("passwordId").value;
    var pswTip = document.getElementById("pswTip");

    if(password == "" || password.length == 0){
        pswTip.innerHTML = "!请输入登录密码";
        pswTip.style.color = "red";
        return false;
    }else if(password.indexOf(" ") != -1){
        pswTip.innerHTML = "!密码不能包含空格符";
        pswTip.style.color = "red";
        return false;
    }
    else if(password.length < 6){
        pswTip.innerHTML = "!密码较短,最短支持6个字符";
        pswTip.style.color = "red";
        return false;
    }else if(/^(?=.*\d)(?=.*[a-zA-Z])(?=.*[\W])[\da-zA-Z\W]{8,}$/.test(password)){
        pswTip.innerHTML = "强:请牢记您的密码";
        pswTip.style.color = "green";
        return true;
    }else if(/^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&*]+$)[a-zA-Z\d!@#$%^&*]+$/.test(password)){
        pswTip.innerHTML = "中:试试字母、数字和标点混合";
        pswTip.style.color = "green";
        return true;
    }else if(/^(?:\d+|[a-zA-Z]+|[!@#$%^&*]+)$/.test(password)){
        pswTip.innerHTML = "弱:试试字母、数字和标点混合";
        pswTip.style.color = "green";
        return true;
    }
    else{
        return true;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值