Javascript實現社會安全號碼碼15位轉18位的演算法

來源:互聯網
上載者:User

今天看到《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。

 

相關連結:

社會安全號碼碼15位升18位(C#)

   http://www.xker.com/page/e2007/0116/10435.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.