我要一段验证身份证的js加上表单的写法

RT,网上的身份证验证js很多,但是functioncheckIdcard(idcard)带参数的这种,表单里的事件我不会写,所以请把完整网页贴出来。找了几个不带参数的,... RT,网上的身份证验证js很多,但是function checkIdcard(idcard) 带参数的这种,表单里的事件我不会写,所以请把完整网页贴出来。找了几个不带参数的,虽然可以用,但是缺点是,在多个表单的时候就会锁定在这个身份证表单里无法跳出。还有我希望输入错误身份证后,弹窗提示错误类型,然后自动清除输入的身份证,求大神给写一个。 展开
 我来答
雨之快乐dca51ae
2014-03-27 · TA获得超过327个赞
知道小有建树答主
回答量:308
采纳率:33%
帮助的人:119万
展开全部
验证身份证的核心函数
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不太熟悉代码就啰嗦了很多

追问
说实话,你的答案真不是我想要的,我自己研究下解决问题了,看在你这么热心的份儿上,采纳了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
孤獨的小綿羊
2014-03-27 · TA获得超过328个赞
知道大有可为答主
回答量:1583
采纳率:87%
帮助的人:360万
展开全部
你给个分给我,我去帮你找一个。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
602836794
2014-03-26 · 超过13用户采纳过TA的回答
知道答主
回答量:84
采纳率:0%
帮助的人:25.3万
展开全部
看明白了,不是不会验证,而是不知道怎么和页面结合起来吧?
追问
我用PAGEADMIN做的网站,需要在会员字段验里填上input里的事件进行js验证,所以我想要表单事件的写法。。。。现在有个奇怪问题,找了两个能用的,一个是事件写进去后不填入正确的身份证就锁定在这个表单里出不来,直到填入正确身份证,还有一个填入错误身份证倒是可以跳出来,但是在单独网页里填入正确身份证提示验证通过,写在cms里,即使填入正确身份证也提示“请填入人员身份证”。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式