常见正则表达式用例

时间:2022-03-30 16:26:00

常见正则表达式用例


一、邮箱正则

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