您的位置:首页 > Web前端 > JavaScript

js 身份证、手机号、邮箱验证

2015-08-31 11:44 295 查看
/**
* 邮箱校验
*/
function check_email(email){
var reg = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
return reg.test(email);
}
/**
* 手机号校验,1开头共11位数字。
*/
function check_phone(phone){
var reg = /^1\d{10}$/;
return reg.test(phone);
}
/**
* 身份证校验,身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
*/
function check_ID(card){
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if(reg.test(card)){
if(card.length==18){
//将前17位加权因子保存在数组里
var idCardWi=new Array( 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 );
//这是除以11后,可能产生的11位余数、验证码,也保存成数组
var idCardY=new Array( 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 );
//用来保存前17位各自乖以加权因子后的总和
var idCardWiSum=0;
for(var i=0;i<17;i++){
idCardWiSum+=card.substring(i,i+1)*idCardWi[i];
}
//计算出校验码所在数组的位置
var idCardMod=idCardWiSum%11;
//得到最后一位身份证号码
var idCardLast=card.substring(17);

//如果等于2,则说明校验码是10,身份证号码最后一位应该是X
if(idCardMod==2){
if(idCardLast=="X"||idCardLast=="x"){
return true;
}else{
return false;
}
}else{
//用计算出的验证码与最后一位身份证号码匹配,如果一致,说明通过,否则是无效的身份证号码
if(idCardLast==idCardY[idCardMod]){
return true;
}else{
return false;
}
}
}
}else{
return false;
}
}
/**
* 字母校验
* @param obj
* @returns {boolean}
*/
function check_letter(obj){
if (/^[a-za-z]+$/.test( obj ))
{
return true;
}else{
return false;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: