常见正则表达式用例
一、邮箱正则
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;
}
}