<input onblur="onf()"/>
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
* 函数初始化
* id 需要跟正则表达式的 属性名一直;
*/
function onf(){
callFun(testFun,"emailExg",regExpression.emailExg);
}
/**
*基础的正则表达式集合;
* @type {{idNum: RegExp, passW: RegExp, trueName: RegExp, phoneNumber: RegExp, cardNumber: RegExp, emailExg: RegExp}}
*/
var regExpression = {
idNum: /[0-9 ]+$/,//验证只为数字;
passW: /[a-zA-Z0-9]+$/,//验证只有数字和字母的密码;
trueName: /^[a-zA-Z\u4E00-\u9FA5]+$/,//验证中文;
phoneNumber:/^1[3|4|5|8][0-9]\d{4,8}$/,//验证手机号码;
cardNumber:/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/,//验证身份证号码;
emailExg: /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$///验证邮箱格式;
};
var wordsTip ={
idNum: "只能输入数字",
passW: "请输入6-16位由字母和数字组成的密码!",
trueName: "该输入只能输入中文和字母,请重新输入!",
phoneNumber:"您输入的手机号码不符合要求,请核对后重新输入!",
cardNumber:"您输入的身份证号码有误请重新输入!",
emailExg: "您输入的邮箱格式不正确"
};
/**
*判断是否满足正则表达式;
* @param tagName
* @param testExe
*/
function testFun(tagName,testExe){
return testExe.test(tagName.value);
}
/**
* 此处验证友情提示根据;
* @param status
* @param id
*/
function switchFunTip(status,idName,id){
switch (id){
case "idNum":
sum(status,idName,wordsTip.idNum);
break;
case "passW":
sum(status,idName,wordsTip.passW);
break;
case "trueName":
sum(status,idName,wordsTip.trueName);
break;
case "phoneNumber":
sum(status,idName,wordsTip.phoneNumber);
break;
case "cardNumber":
sum(status,idName,wordsTip.cardNumber);
break;
case "emailExg":
sum(status,idName,wordsTip.emailExg);
break;
}
}
/**
* 此处根据状态显示具体的提示内容;
* @param status
* @param id
* @param exepre
* @returns {boolean}
*/
function sum(status,idName,exepres){
if(status == true){
idName.nextSibling.innerHTML = "";
return true;
}else{
idName.value="";
idName.nextSibling.innerHTML = exepres;
idName.nextSibling.style.color = "red";
return false;
}
}
/**
* 主体调用函数;
* @param testFun
* @param id
* @param testExe
*/
function callFun(testFun,id,testExe){
var tagName = document.getElementById(id);
var val = testFun(tagName,testExe);
switchFunTip(val,tagName,id);
}