// Анализ идентификационный номер и возраст формата экспорта функции 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, возраст, пол, наконечник, }; }