z***@xindun.org
z***@xindun.org
  • 发布:2016-07-25 15:46
  • 更新:2016-07-25 16:20
  • 阅读:2621

急.......JS怎么实现身份证号码:123456 yyyymmdd xxx y 这样的格式

分类:HTML5+
2016-07-25 15:46 负责人:无 分享
已邀请:
lhyh

lhyh - 目前就职成都

比较笨的一个办法,希望帮到你。当然不怕麻烦的话,你可以引入第三方校验插件,比如http://code.ciaoca.com/jquery/validation-engine/demo/


        function isCardID(sId) {  
                var aCity = {  
                    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 iSum = 0;  
                var info = "";  
                var checkFlag=true;  
                if (!/^\d{17}(\d|x)$/i.test(sId)) checkFlag = false;  
                sId = sId.replace(/x$/i, "a");  
                if (aCity[parseInt(sId.substr(0, 2))] == null) checkFlag = false;  
                var sBirthday = sId.substr(6, 4) + "-" + Number(sId.substr(10, 2)) + "-" + Number(sId.substr(12, 2));  
                var d = new Date(sBirthday.replace(/-/g, "/"));  
                if (sBirthday != (d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate())) checkFlag = false;  
                for (var i = 17; i >= 0; i--) iSum += (Math.pow(2, i) % 11) * parseInt(sId.charAt(17 - i), 11);  
                if (iSum % 11 != 1) changeFlag = false;  
                if (!checkFlag) {  
                    plus.nativeUI.toast('请输入正确的身份证号!');  
                    return false;  
                }  
                return true;  
            }

该问题目前已经被锁定, 无法添加新回复