大陆身份证号码正则验证js脚本

以下是我的验证出生日期1940-2015大陆身份证号的js脚本,对 18 位身份证号有校验码的验证,但15位的只是做了基础性的位数和出生年月日的验证。如果谁能理出前六位的列表就更好了,如果有什么更好的方法请提出来,大家一块探讨一下。String.prototype.isCardId = function() {var v = this;if(v.length!=18&&v.length!=15){return false;}var reg = /^\d{6}((?:19)?[4-9][0-9]|20(?:0[0-9]|1[0-5]))((?:0[1-9]|1[012])(?:0[1-9]|[12][0-9])|(?:0[13578]|1[02])(?:3[01])|(?:0[469]|11)(?:30))[0-9]{2,3}[0-9xX]?$/ ;var b = reg.test(v);if(!b){return false;}var y = RegExp.$1;var md = RegExp.$2;console.info(y+"-"+md);if("0229"==md.trim()){y = parseInt(y,10);if(y<1900){y +=1900;}if(y%400!=0&&y%4!=0){return false;}}if (v.length == 18) {var byNum = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];var lastNum = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2];var cardArray = v.split("");var sum = 0;for (var i = 0; i < byNum.length; i++) {sum += byNum[i] * cardArray[i];}if (lastNum[sum % 11] != (""+cardArray[17]).toUpperCase()) {return false;}}return true;}

,爱的力量大到可以使人忘记一切,却又小到连一粒嫉妒的沙石也不能容纳

大陆身份证号码正则验证js脚本

相关文章:

你感兴趣的文章:

标签云: