<input type="text" placeholder="请输入证件号" v-model="form.certificateNumber" maxlength="18" onkeyup="value=value.replace(/[^\w\.\/]/ig,'')">
if(data.certificateNumber === '')
{
Toast('请输入18位身份证号');
return false;
}
if(data.certificateNumber.length != 18)
{
Toast('请输入18位身份证号');
return false;
}
if(this.isCardNo(data.certificateNumber) === false)
{
Toast('您输入的身份证号码不正确,请重新输入');
return false;
}
if(this.checkProvince(data.certificateNumber) === false)
{
Toast('您输入的身份证号码不正确,请重新输入');
return false;
}
if(this.checkBirthday(data.certificateNumber) === false)
{
Toast('您输入的身份证号码生日不正确,请重新输入');
return false;
}
if(this.checkParity(data.certificateNumber) === false)
{
Toast('您的身份证校验位不正确,请重新输入');
return false;
}
isCardNo(data){
var reg = /(^\d{15}$)|(^\d{17}(\d|X)$)/;
if(reg.test(data) === false)
{
return false;
}
return true;
},
checkProvince(data)
{
var city={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江 ",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北 ",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏 ",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外 "};
var province = data.substr(0,2);
if(city[province] == undefined)
{
return false;
}
return true;
},
checkBirthday(data)
{
var len = data.length;
if(len == '15')
{
var re_fifteen = /^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/;
var arr_data = data.match(re_fifteen);
var year = arr_data[2];
var month = arr_data[3];
var day = arr_data[4];
var birthday = new Date('19'+year+'/'+month+'/'+day);
return this.verifyBirthday('19'+year,month,day,birthday);
}
if(len == '18')
{
var re_eighteen = /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/;
var arr_data = data.match(re_eighteen);
var year = arr_data[2];
var month = arr_data[3];
var day = arr_data[4];
var birthday = new Date(year+'/'+month+'/'+day);
return this.verifyBirthday(year,month,day,birthday);
}
return false;
},
verifyBirthday(year,month,day,birthday)
{
var now = new Date();
var now_year = now.getFullYear();
if(birthday.getFullYear() == year && (birthday.getMonth() + 1) == month && birthday.getDate() == day)
{
var time = now_year - year;
if(time >= 0 && time <= 150)
{
return true;
}
return false;
}
return false;
},
checkParity(data)
{
data = this.changeFivteenToEighteen(data);
var len = data.length;
if(len == '18')
{
var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
var cardTemp = 0, i, valnum;
for(i = 0; i < 17; i ++)
{
cardTemp += data.substr(i, 1) * arrInt[i];
}
valnum = arrCh[cardTemp % 11];
if (valnum == data.substr(17, 1))
{
return true;
}
return false;
}
return false;
},
changeFivteenToEighteen(data)
{
if(data.length == '15')
{
var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
var cardTemp = 0, i;
data = data.substr(0, 6) + '19' + data.substr(6, data.length - 6);
for(i = 0; i < 17; i ++)
{
cardTemp += data.substr(i, 1) * arrInt[i];
}
data += arrCh[cardTemp % 11];
return data;
}
return data;
},