// 形式のID番号や年齢分析 エクスポート関数authenticationAccount(IDNUM){ CONSTシティ= { 11:' 北京' 、 12:' 天津' 、 13:' 河北' 、 14:' 山西' 、 15:' 内モンゴルを' 、 21:' 遼寧' 、 22:' 吉林' 、 23:"黒龍江省' 31:" 上海" 、 32:「江蘇' 33:' 浙江' 34:' 安徽' 35:' 福建省' 36:' 江西省' 37:' 山東' 41:' 河南' 、 42:"湖北省"、 43:' 湖南' 、 44:' 広東' 、 45:' 広西' 、 46:' 海南' 、 50:' 重慶' 、 51:' 四川' 、 52:' 貴' 、 53:' 雲南' 、 54:' チベット' 、 61:' 陝西' 、 62:' 甘粛' 、 63:' 青海' 、 64:' 寧夏' 、 65:' 新疆' 、 71:' 台湾' 、 81:' 香港' 、 82:' マカオ' 、 91:「外国」、 }。 letのヒント = ' 検証が成功を' ; LET isRight = trueに、 セックスせ = '' ; せ年齢 = 0 ; LETコード = []; IF(!== idNum.length 18である){ ヒント = ' 不正な形式のID番号' ; isRight = falseに; } そう IF(シティ[idNum.substr(!0、2 )]){ ヒント = ' アドレスコードエラー' ; isRight = falseに; } 他{ // 18は、最後の1ビットのIDパリティを確認するために必要とされる コード= idNum.split('' ); // (MOD 11)[シグマ(のWi×AI) // 重み係数 の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 ; 聞かせてAI = 0 ; 聞かせてのwi = 0 ; 以下のための(iは=せ0 ; iが< 17 ; iが++ ){ AI = コード[I]; Wi = 因子[I]; SUM + AI * = のWi; } // VAR最終パリティ= [SUM%11。]; IF(パリティ[SUM%。11 [!] .ToString()==コード。17 ] .toString()){ ヒント = " 学校ビットエラーをチェック' ; isRight = falseに; } IF (isRight){ // ID番号解析 CONST codeStr = idNum.toString(); IF(のparseInt(codeStr.substr(16、1)、10)%2 === 1 ){ 性別 =「男」。 } 他{ 性別 = ' 女' ; } // 获取年龄 のconst MyDateに該当= 新しい日付(); 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、 年齢、 性別、 チップ、 }。 }