Javascript实现身份证号码15位转18位的算法
2011-04-11 12:54
1081 查看
今天看到《JS实现身份证号码15位转18位时最后一位的算法》一文(http://www.webjx.com/htmldata/2005-10-24/1130111668.html),发现其中有一个很大的错误,就是未将年份补齐,就开始了校验码的运算。
改后的程序如下:
<SCRIPT LANGUAGE="JavaScript">
<!--
var lastNumber;
var id = "输入15位身份证号码"; //15位身份证号码
//这里最好还加上身份证号码的检查(略)
//取得前面17位号码
var zone=id.substring(0,6);
var year="19" + id.substring(6,8);
var mdo=id.substring(8,15);
id = zone + year + mdo;
//取得最后的检验码
var getNum=eval(id.charAt(0)*7+id.charAt(1)*9+id.charAt(2)*10+id.charAt(3)*5+id.charAt(4)*8+id.charAt(5)*4+id.charAt(6)*2+id.charAt(7)*1+id.charAt(8)*6+id.charAt(9)*3+id.charAt(10)*7+id.charAt(11)*9+id.charAt(12)*10+id.charAt(13)*5+id.charAt(14)*8+id.charAt(15)*4+id.charAt(16)*2);
getNum=getNum%11;
switch (getNum) {
case 0 :
lastNumber="1";
break;
case 1 :
lastNumber="0";
break;
case 2 :
lastNumber="X";
break;
case 3 :
lastNumber="9";
break;
case 4 :
lastNumber="8";
break;
case 5 :
lastNumber="7";
break;
case 6 :
lastNumber="6";
break;
case 7 :
lastNumber="5";
break;
case 8 :
lastNumber="4";
break;
case 9 :
lastNumber="3";
break;
case 10 :
lastNumber="2";
break;
}
//document.write(lastNumber);
all = id + lastNumber;
document.write(all);
//-->
</SCRIPT>
OK。
相关链接:
改后的程序如下:
<SCRIPT LANGUAGE="JavaScript">
<!--
var lastNumber;
var id = "输入15位身份证号码"; //15位身份证号码
//这里最好还加上身份证号码的检查(略)
//取得前面17位号码
var zone=id.substring(0,6);
var year="19" + id.substring(6,8);
var mdo=id.substring(8,15);
id = zone + year + mdo;
//取得最后的检验码
var getNum=eval(id.charAt(0)*7+id.charAt(1)*9+id.charAt(2)*10+id.charAt(3)*5+id.charAt(4)*8+id.charAt(5)*4+id.charAt(6)*2+id.charAt(7)*1+id.charAt(8)*6+id.charAt(9)*3+id.charAt(10)*7+id.charAt(11)*9+id.charAt(12)*10+id.charAt(13)*5+id.charAt(14)*8+id.charAt(15)*4+id.charAt(16)*2);
getNum=getNum%11;
switch (getNum) {
case 0 :
lastNumber="1";
break;
case 1 :
lastNumber="0";
break;
case 2 :
lastNumber="X";
break;
case 3 :
lastNumber="9";
break;
case 4 :
lastNumber="8";
break;
case 5 :
lastNumber="7";
break;
case 6 :
lastNumber="6";
break;
case 7 :
lastNumber="5";
break;
case 8 :
lastNumber="4";
break;
case 9 :
lastNumber="3";
break;
case 10 :
lastNumber="2";
break;
}
//document.write(lastNumber);
all = id + lastNumber;
document.write(all);
//-->
</SCRIPT>
OK。
相关链接:
身份证号码15位升18位(C#)
http://www.xker.com/page/e2007/0116/10435.html相关文章推荐
- JS实现身份证号码15位转18位时最后一位的算法
- C# 15位身份证号码转18位算法实现
- VB.NET实现身份证15位升18位的算法
- java代码实现15位身份证号码升级到18位
- 身份证号码的验证及15位升18位算法
- JavaScript验证18位或者15位身份证号码是否合法
- 使用C#实现身份证号码15位到18位的转换
- Delphi实现身份证15位升18位的算法
- [转]15位身份证号码转18位算法
- JavaScript验证18位或者15位身份证号码是否合法
- 用C#实现由15位身份证号升级到18位的算法!
- 身份证号码15位转18位 C#实现
- 新旧身份证合法性验证及相互转换算法(三):Java身份证号码验证及将15位转换18位
- 身份证号码验证算法 javascript实现
- VB.NET实现身份证15位升18位的算法
- 【关键字】Javascript js 身份证号码 检测 规则 18位 15位
- C#实现的18位身份证号码最新算法[验证部分]
- JavaScript检验身份证号码15位18位
- JavaScript验证18位身份证号码最后一位正确性的实现代码
- 15位身份证号码转18位算法