我要一段验证身份证的js加上表单的写法
RT,网上的身份证验证js很多,但是functioncheckIdcard(idcard)带参数的这种,表单里的事件我不会写,所以请把完整网页贴出来。找了几个不带参数的,...
RT,网上的身份证验证js很多,但是function checkIdcard(idcard) 带参数的这种,表单里的事件我不会写,所以请把完整网页贴出来。找了几个不带参数的,虽然可以用,但是缺点是,在多个表单的时候就会锁定在这个身份证表单里无法跳出。还有我希望输入错误身份证后,弹窗提示错误类型,然后自动清除输入的身份证,求大神给写一个。
展开
3个回答
展开全部
验证身份证的核心函数
function IDCardRegex(v) {
v = SpaceClear(v);
if (v.length != 18) {
//alert("长度不正确");
return false;
}
var numrex = /[0-9xX]/g;
if (v.replace(numrex, '') != '') {
//alert("字符不正确");
return false;
}
var address = "11x22x35x44x53x12x23x36x45x54x13x31x37x46x61x14x32x41x50x62x15x33x42x51x63x21x34x43x52x64x65x71x81x82x91";
var left2=v.substr(0,2);
if (address.indexOf(left2) < 0) {
//alert("地区信息不正确");
return false;
}
var birth = v.substr(6, 8);
birth = birth.substr(0, 4) + "-" + birth.substr(4, 2) + "-" + birth.substr(6);
var birthday = new Date(birth);
if (birthday.getDate().toString() == 'NaN') {
//alert("生岩搏日不正确");
return false;
}
//效验码
var Wistr = "7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2";
var Wis = Wistr.split(',');
var Sums = 0;
var Sum = 0;
var c;
for (var i = 0; i < 17; i++) {
c = v.substr(i, 1);
Sum = parseInt(c) * parseInt(Wis[i]);
Sums += Sum;
}
var Y = Sums % 11;
var T = v.substr(17, 1);
if (T == 'X') {
T = 'x';
}
var E = '';
switch (Y) {
case 0:
Y = 1;
break;
case 1:
Y = 0;
break;
default:
Y = 12 - Y;
break;
}
E = Y.toString();
if (Y == 10) {
E = 'x'基清;
}
if (E != T) {
// alert("效验码不正确");
return false;
}
// alert("检查完毕");
return true;
}
调用函数:
var idcardno='*****';
if(!IDCardRegex(idcardno))
{
//alert("身份证号码格式不正确");
}
会返回true或false
页面结合代码示例如下:
<input type="text" id="text_idcard" /><span id="span_idcard"></span>
<input type="button" id="btn_ok" value="确定" />
js代码如下 引用jquery
$(function(){
$("#text_idcard").blur(function(){//当输完身份证号码 将鼠标点击其他地方时候触发事件
var idcard=$("#text_idcard").val();
idcard=idcard.replace(/\s+/g,"");
if(IDCardRegex(idcard))
{
$("#span_idcard").text("身份证格式正确");
//验证通过 提示可有可无
}
else
{
//验证未通过
$("#span_idcard").text("身份证格式不正确");
$("#text_idcard").focus();//让焦点重新回到身份证输入框
粗锋祥}
})
$("#btn_ok").click(function(){//按钮提交事件 这个可以写在下面一个函数里
var idcard=$("#text_idcard").val();
idcard=idcard.replace(/\s+/g,"");
if(!IDCardRegex(idcard))
{
//验证未通过
$("#span_idcard").text("身份证格式不正确");
$("#text_idcard").focus();//让焦点重新回到身份证输入框
return false;//阻止按钮向下执行
}
})
})
function btn_send()
{
//----把按钮执行事件写在这里 然后按钮属性加上onclick="return btn_send()"
}
上面是手写代码 看LZ对js不太熟悉代码就啰嗦了很多
追问
说实话,你的答案真不是我想要的,我自己研究下解决问题了,看在你这么热心的份儿上,采纳了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你给个分给我,我去帮你找一个。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看明白了,不是不会验证,而是不知道怎么和页面结合起来吧?
追问
我用PAGEADMIN做的网站,需要在会员字段验里填上input里的事件进行js验证,所以我想要表单事件的写法。。。。现在有个奇怪问题,找了两个能用的,一个是事件写进去后不填入正确的身份证就锁定在这个表单里出不来,直到填入正确身份证,还有一个填入错误身份证倒是可以跳出来,但是在单独网页里填入正确身份证提示验证通过,写在cms里,即使填入正确身份证也提示“请填入人员身份证”。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询