Синтаксический идентификационный номер

// Анализ идентификационный номер и возраст формата 
экспорта функции authenticationAccount (IDNUM) {
   сопз City = {
     11. : ' Пекин ' ,
     12 : ' Тяньцзинь ' ,
     13 : ' Хэбэй ' ,
     14 : ' Shanxi ' ,
     15 : ' Внутренняя Монголия ' ,
     21 : ' Ляонин ' ,
     22 : ' Цзилинь ' ,
     23 : 'Хэйлунцзян ' 31 : " Шанхай " ,
     32 : " Цзянсу ' 33 : ' Чжэцзян ' 34 : ' Аньхой ' 35 : ' Фуцзянь ' 36 : ' Цзянси ' 37 : ' Шаньдун ' 41 : ' Хэнань ' ,
     42 : 'Хубэй ",
     43 : ' Хунань ' ,
     44 : ' Гуандун ' ,
     45 : ' Гуансиский ' ,
     46 : ' Хайнань ' ,
     50 : ' Чунцин ' ,
     51 : ' Сычуань ' ,
     52 : ' Guizhou ' ,
     53 : ' Юньнань ' ,
     54 : ' Тибет ' ,
    61 : ' Шэньсиский ' ,
     62 : ' Ганьсу ' ,
     63 : ' Цинхай ' ,
     64 : ' Нинся ' ,
     65 : ' Синьцзян ' ,
     71 : ' Тайвань ' ,
     81 : ' Гонконг ' ,
     82 : ' Макао ' ,
     91 : « иностранный » ,  
  };
  ЛПЭ Совет = ' проверка успешна ' ; 
  Выпускаемое isRight = истина ; 
  Выпускаемое Sex = '' ; 
  Выпускаемое Возраст = 0 ; 
  ЛПЭ код = [];
   IF (! == idNum.length 18 ) { 
    Tip = ' идентификационный номер неправильный формат ' ; 
    isRight = ложь ; 
  } еще  IF (City [idNum.substr (! 0 , 2 )]) { 
    Tip = ' код ошибки адреса ' ; 
    isRight= К ложным ; 
  } еще {
     // 18 требуется для проверки последнего один-битовый идентификатор четности 
    кода = idNum.split ( '' );
     // (. MOD 11) [Сигма (ВИ × ИИ)
     // весовой коэффициент 
    Const = коэффициент [ 7 , 9 , 10 , 5 , 8 , 4 , 2 , 1 , 6 , 3 , 7 , 9 , 10 , 5 , 8 , 4 , 2];
    //校验位
    Const четности = [ 1 , 0 , ' X ' , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 ]; 
    пусть сумма = 0 ; 
    пусть аг = 0 ; 
    Пусть ш = 0 ;
    для (пусть I = 0 ; г < 17 ; я ++ ) { 
      аи = код [I]; 
      Wi = коэффициент [I];
      SUM + AI * = Wi; 
    } 
    // вар Последний Parity = [SUM% 11.]; 
    IF (Parity [SUM% 11. .ToString () == код!] [ 17. {.ToString ()]) 
      Tip = ' проверка бит ошибки ' ; 
      isRight = ложь ; 
    } 

    ЕСЛИ (isRight) {
       // идентификационный номер разбора 
      Const codeStr = idNum.toString ();
       ЕСЛИ (The ParseInt (codeStr.substr ( 16 , . 1 ), 10 )% 2 === . 1 = ) {
        секс ' ' ; 
      } Еще { 
        секс = ' ' ; 
      } 
      // 获取年龄
      Const MyDate = новый Date ();
      Const месяц = myDate.getMonth () + 1 ;
      Const день = myDate.getDate (); 
      возраст = myDate.getFullYear () - codeStr.substring ( 6 , 10 ) - 1 ;
      Const codeMonth = ParseInt (codeStr.substring ( 10 , 12 ), 10);
      Const codeDay = ParseInt (codeStr.substring ( 12 , 14 ), 10 );
      если (codeMonth <месяц || (codeMonth === месяц && codeDay <= день)) { 
        возраст ++ ; 
      } 
    } 
  } 
  Возвращение { 
    isRight, 
    возраст, 
    пол, 
    наконечник, 
  }; 
}

 

рекомендация

отwww.cnblogs.com/wangyuxue/p/11468410.html