JavaScrpt版本
function idCard15To18(id){
var W = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);
var A = new Array("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2");
var i,j,s=0;
var newid;
newid = id;
newid = newid.substring(0,6)+"19"+newid.substring(6,id.length);
for(i=0;i<newid.length;i++ ){
j= parseInt(newid.substring(i,i+1))*W[i];
s=s+j;
}
s = s % 11;
newid=newid+A[s];
return newid;
}
验证15,18号码的合法性
参考资料
1 js 验证 15位 、 18位
2 用javascript验证号码15位或18位
function checkIDCard (str)
{ //正则表达式(15位)
isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
//正则表达式(18位)
isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;
//验证,返回结果
return (isIDCard1.test(str)||isIDCard2.test(str));
}
这个方法不是很正确,正确的做法是:先将15转换为18位,在调用方法验证是否正确!
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-35791-5.html
就是
中国为什么不在附近海域搞实弹演习