統一社會信用代碼校驗——JS


 function CheckSocialCreditCode(Code) 
{ 
  var patrn = /^[0-9A-Z]+$/;
   //18位校驗及大寫校驗
   if ((Code.length != 18) || (patrn.test(Code) == false)) 
    { 
      alert("不是有效的統一社會信用編碼!"); 
     } 
  else 
  {     
var Ancode;//統一社會信用代碼的每一個值     var Ancodevalue;//統一社會信用代碼每一個值的權重     var total = 0;     var weightedfactors = [1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28];//加權因子     var str = '0123456789ABCDEFGHJKLMNPQRTUWXY';     //不用I、O、S、V、Z     for (var i = 0; i < Code.length - 1; i++)     {     Ancode = Code.substring(i, i + 1);     Ancodevalue = str.indexOf(Ancode);     total = total + Ancodevalue * weightedfactors[i];     //權重與加權因子相乘之和     }     var logiccheckcode = 31 - total % 31;

    if (logiccheckcode == 31)
    {
      logiccheckcode = 0;
    }
    var Str = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,T,U,W,X,Y";
    var Array_Str = Str.split(',');
    logiccheckcode = Array_Str[logiccheckcode];


     var checkcode = Code.substring(17, 18);
     if (logiccheckcode != checkcode) 
    { 
      alert("不是有效的統一社會信用編碼!"); 
     }
   } 
 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM