Created
June 6, 2014 11:54
-
-
Save shepherdwind/fd75dbda4f81be714dd5 to your computer and use it in GitHub Desktop.
Revisions
-
shepherdwind created this gist
Jun 6, 2014 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,43 @@ /** * 15位身份证转换为18位 * */ function getIdCardNumber18(idCardNumber){ if (!idCardNumber) { return null; } // 转换为字符串 idCardNumber = '' + idCardNumber; if (idCardNumber.length === 18) { return idCardNumber; } else if (idCardNumber.length !== 15) { return null; } /* 首先将身份证号码扩展至17位: 将出生年扩展为19XX的形式 */ var idCardNumber17 = idCardNumber.substring(0, 6) + "19" + idCardNumber.substring(6); /* 计算校验码 */ var nSum = 0; for (var nCount = 0; nCount < 17; nCount++) { nSum += (parseInt(idCardNumber17[nCount], 10) * (Math.pow(2, 17 - nCount) % 11)); } nSum = nSum % 11; if (nSum <= 1) { nSum = 1 - nSum; } else { nSum = 12 - nSum; } /* * BUGFIX:18位身份证最后一位应该是X */ if (nSum === 10) { return idCardNumber17 + "X"; } else { return idCardNumber17 += nSum; } }