.class public Lcom/common/uitl/IdcardValidator; .super Ljava/lang/Object; .source "IdcardValidator.java" # instance fields .field private cityCode:[Ljava/lang/String; .field private codeAndCity:[[Ljava/lang/String; .field private power:[I .field private verifyCode:[Ljava/lang/String; # direct methods .method public constructor ()V .registers 27 move-object/from16 v0, p0 .line 12 invoke-direct/range {p0 .. p0}, Ljava/lang/Object;->()V const/16 v1, 0x23 .line 22 new-array v2, v1, [[Ljava/lang/String; const/4 v3, 0x2 new-array v4, v3, [Ljava/lang/String; const/4 v5, 0x0 const-string v6, "11" aput-object v6, v4, v5 const-string v7, "\u5317\u4eac" const/4 v8, 0x1 aput-object v7, v4, v8 aput-object v4, v2, v5 new-array v4, v3, [Ljava/lang/String; const-string v7, "12" aput-object v7, v4, v5 const-string v9, "\u5929\u6d25" aput-object v9, v4, v8 aput-object v4, v2, v8 new-array v4, v3, [Ljava/lang/String; const-string v9, "13" aput-object v9, v4, v5 const-string v10, "\u6cb3\u5317" aput-object v10, v4, v8 aput-object v4, v2, v3 new-array v4, v3, [Ljava/lang/String; const-string v10, "14" aput-object v10, v4, v5 const-string v11, "\u5c71\u897f" aput-object v11, v4, v8 const/4 v11, 0x3 aput-object v4, v2, v11 new-array v4, v3, [Ljava/lang/String; const-string v12, "15" aput-object v12, v4, v5 const-string v13, "\u5185\u8499\u53e4" aput-object v13, v4, v8 const/4 v13, 0x4 aput-object v4, v2, v13 new-array v4, v3, [Ljava/lang/String; const-string v14, "21" aput-object v14, v4, v5 const-string v15, "\u8fbd\u5b81" aput-object v15, v4, v8 const/4 v15, 0x5 aput-object v4, v2, v15 new-array v4, v3, [Ljava/lang/String; const-string v16, "22" aput-object v16, v4, v5 const-string v17, "\u5409\u6797" aput-object v17, v4, v8 const/16 v17, 0x6 aput-object v4, v2, v17 new-array v4, v3, [Ljava/lang/String; const-string v18, "23" aput-object v18, v4, v5 const-string v19, "\u9ed1\u9f99\u6c5f" aput-object v19, v4, v8 const/16 v19, 0x7 aput-object v4, v2, v19 new-array v4, v3, [Ljava/lang/String; const-string v20, "31" aput-object v20, v4, v5 const-string v20, "\u4e0a\u6d77" aput-object v20, v4, v8 const/16 v20, 0x8 aput-object v4, v2, v20 new-array v4, v3, [Ljava/lang/String; const-string v21, "32" aput-object v21, v4, v5 const-string v21, "\u6c5f\u82cf" aput-object v21, v4, v8 const/16 v21, 0x9 aput-object v4, v2, v21 new-array v4, v3, [Ljava/lang/String; const-string v22, "33" aput-object v22, v4, v5 const-string v22, "\u6d59\u6c5f" aput-object v22, v4, v8 const/16 v22, 0xa aput-object v4, v2, v22 new-array v4, v3, [Ljava/lang/String; const-string v23, "34" aput-object v23, v4, v5 const-string v23, "\u5b89\u5fbd" aput-object v23, v4, v8 const/16 v15, 0xb aput-object v4, v2, v15 new-array v4, v3, [Ljava/lang/String; const-string v24, "35" aput-object v24, v4, v5 const-string v24, "\u798f\u5efa" aput-object v24, v4, v8 const/16 v24, 0xc aput-object v4, v2, v24 new-array v4, v3, [Ljava/lang/String; const-string v24, "36" aput-object v24, v4, v5 const-string v24, "\u6c5f\u897f" aput-object v24, v4, v8 const/16 v24, 0xd aput-object v4, v2, v24 new-array v4, v3, [Ljava/lang/String; const-string v24, "37" aput-object v24, v4, v5 const-string v24, "\u5c71\u4e1c" aput-object v24, v4, v8 const/16 v24, 0xe aput-object v4, v2, v24 new-array v4, v3, [Ljava/lang/String; const-string v24, "41" aput-object v24, v4, v5 const-string v24, "\u6cb3\u5357" aput-object v24, v4, v8 const/16 v24, 0xf aput-object v4, v2, v24 new-array v4, v3, [Ljava/lang/String; const-string v24, "42" aput-object v24, v4, v5 const-string v24, "\u6e56\u5317" aput-object v24, v4, v8 const/16 v24, 0x10 aput-object v4, v2, v24 new-array v4, v3, [Ljava/lang/String; const-string v24, "43" aput-object v24, v4, v5 const-string v24, "\u6e56\u5357" aput-object v24, v4, v8 const/16 v15, 0x11 aput-object v4, v2, v15 new-array v4, v3, [Ljava/lang/String; const-string v25, "44" aput-object v25, v4, v5 const-string v25, "\u5e7f\u4e1c" aput-object v25, v4, v8 const/16 v25, 0x12 aput-object v4, v2, v25 new-array v4, v3, [Ljava/lang/String; const-string v25, "45" aput-object v25, v4, v5 const-string v25, "\u5e7f\u897f" aput-object v25, v4, v8 const/16 v25, 0x13 aput-object v4, v2, v25 new-array v4, v3, [Ljava/lang/String; const-string v25, "46" aput-object v25, v4, v5 const-string v25, "\u6d77\u5357" aput-object v25, v4, v8 const/16 v25, 0x14 aput-object v4, v2, v25 new-array v4, v3, [Ljava/lang/String; const-string v25, "50" aput-object v25, v4, v5 const-string v25, "\u91cd\u5e86" aput-object v25, v4, v8 const/16 v25, 0x15 aput-object v4, v2, v25 new-array v4, v3, [Ljava/lang/String; const-string v25, "51" aput-object v25, v4, v5 const-string v25, "\u56db\u5ddd" aput-object v25, v4, v8 const/16 v25, 0x16 aput-object v4, v2, v25 new-array v4, v3, [Ljava/lang/String; const-string v25, "52" aput-object v25, v4, v5 const-string v25, "\u8d35\u5dde" aput-object v25, v4, v8 const/16 v25, 0x17 aput-object v4, v2, v25 new-array v4, v3, [Ljava/lang/String; const-string v25, "53" aput-object v25, v4, v5 const-string v25, "\u4e91\u5357" aput-object v25, v4, v8 const/16 v25, 0x18 aput-object v4, v2, v25 new-array v4, v3, [Ljava/lang/String; const-string v25, "54" aput-object v25, v4, v5 const-string v25, "\u897f\u85cf" aput-object v25, v4, v8 const/16 v25, 0x19 aput-object v4, v2, v25 new-array v4, v3, [Ljava/lang/String; const-string v25, "61" aput-object v25, v4, v5 const-string v25, "\u9655\u897f" aput-object v25, v4, v8 const/16 v25, 0x1a aput-object v4, v2, v25 new-array v4, v3, [Ljava/lang/String; const-string v25, "62" aput-object v25, v4, v5 const-string v25, "\u7518\u8083" aput-object v25, v4, v8 const/16 v25, 0x1b aput-object v4, v2, v25 new-array v4, v3, [Ljava/lang/String; const-string v25, "63" aput-object v25, v4, v5 const-string v25, "\u9752\u6d77" aput-object v25, v4, v8 const/16 v25, 0x1c aput-object v4, v2, v25 new-array v4, v3, [Ljava/lang/String; const-string v25, "64" aput-object v25, v4, v5 const-string v25, "\u5b81\u590f" aput-object v25, v4, v8 const/16 v25, 0x1d aput-object v4, v2, v25 new-array v4, v3, [Ljava/lang/String; const-string v25, "65" aput-object v25, v4, v5 const-string v25, "\u65b0\u7586" aput-object v25, v4, v8 const/16 v25, 0x1e aput-object v4, v2, v25 new-array v4, v3, [Ljava/lang/String; const-string v25, "71" aput-object v25, v4, v5 const-string v25, "\u53f0\u6e7e" aput-object v25, v4, v8 const/16 v25, 0x1f aput-object v4, v2, v25 new-array v4, v3, [Ljava/lang/String; const-string v25, "81" aput-object v25, v4, v5 const-string v25, "\u9999\u6e2f" aput-object v25, v4, v8 const/16 v25, 0x20 aput-object v4, v2, v25 new-array v4, v3, [Ljava/lang/String; const-string v25, "82" aput-object v25, v4, v5 const-string v25, "\u6fb3\u95e8" aput-object v25, v4, v8 const/16 v25, 0x21 aput-object v4, v2, v25 new-array v4, v3, [Ljava/lang/String; const-string v25, "91" aput-object v25, v4, v5 const-string v25, "\u56fd\u5916" aput-object v25, v4, v8 const/16 v25, 0x22 aput-object v4, v2, v25 iput-object v2, v0, Lcom/common/uitl/IdcardValidator;->codeAndCity:[[Ljava/lang/String; .line 33 new-array v1, v1, [Ljava/lang/String; aput-object v6, v1, v5 aput-object v7, v1, v8 aput-object v9, v1, v3 aput-object v10, v1, v11 aput-object v12, v1, v13 const/4 v2, 0x5 aput-object v14, v1, v2 aput-object v16, v1, v17 aput-object v18, v1, v19 const-string v2, "31" aput-object v2, v1, v20 const-string v2, "32" aput-object v2, v1, v21 const-string v2, "33" aput-object v2, v1, v22 const-string v2, "34" const/16 v4, 0xb aput-object v2, v1, v4 const/16 v2, 0xc const-string v4, "35" aput-object v4, v1, v2 const/16 v2, 0xd const-string v4, "36" aput-object v4, v1, v2 const/16 v2, 0xe const-string v4, "37" aput-object v4, v1, v2 const/16 v2, 0xf const-string v4, "41" aput-object v4, v1, v2 const/16 v2, 0x10 const-string v4, "42" aput-object v4, v1, v2 const-string v2, "43" aput-object v2, v1, v15 const/16 v2, 0x12 const-string v4, "44" aput-object v4, v1, v2 const/16 v2, 0x13 const-string v4, "45" aput-object v4, v1, v2 const/16 v2, 0x14 const-string v4, "46" aput-object v4, v1, v2 const/16 v2, 0x15 const-string v4, "50" aput-object v4, v1, v2 const/16 v2, 0x16 const-string v4, "51" aput-object v4, v1, v2 const/16 v2, 0x17 const-string v4, "52" aput-object v4, v1, v2 const/16 v2, 0x18 const-string v4, "53" aput-object v4, v1, v2 const/16 v2, 0x19 const-string v4, "54" aput-object v4, v1, v2 const/16 v2, 0x1a const-string v4, "61" aput-object v4, v1, v2 const/16 v2, 0x1b const-string v4, "62" aput-object v4, v1, v2 const/16 v2, 0x1c const-string v4, "63" aput-object v4, v1, v2 const/16 v2, 0x1d const-string v4, "64" aput-object v4, v1, v2 const/16 v2, 0x1e const-string v4, "65" aput-object v4, v1, v2 const/16 v2, 0x1f const-string v4, "71" aput-object v4, v1, v2 const/16 v2, 0x20 const-string v4, "81" aput-object v4, v1, v2 const/16 v2, 0x21 const-string v4, "82" aput-object v4, v1, v2 const/16 v2, 0x22 const-string v4, "91" aput-object v4, v1, v2 iput-object v1, v0, Lcom/common/uitl/IdcardValidator;->cityCode:[Ljava/lang/String; .line 39 new-array v1, v15, [I fill-array-data v1, :array_2da iput-object v1, v0, Lcom/common/uitl/IdcardValidator;->power:[I const/16 v1, 0xb .line 42 new-array v1, v1, [Ljava/lang/String; const-string v2, "1" aput-object v2, v1, v5 const-string v2, "0" aput-object v2, v1, v8 const-string v2, "X" aput-object v2, v1, v3 const-string v2, "9" aput-object v2, v1, v11 const-string v2, "8" aput-object v2, v1, v13 const-string v2, "7" const/4 v3, 0x5 aput-object v2, v1, v3 const-string v2, "6" aput-object v2, v1, v17 const-string v2, "5" aput-object v2, v1, v19 const-string v2, "4" aput-object v2, v1, v20 const-string v2, "3" aput-object v2, v1, v21 const-string v2, "2" aput-object v2, v1, v22 iput-object v1, v0, Lcom/common/uitl/IdcardValidator;->verifyCode:[Ljava/lang/String; return-void nop :array_2da .array-data 4 0x7 0x9 0xa 0x5 0x8 0x4 0x2 0x1 0x6 0x3 0x7 0x9 0xa 0x5 0x8 0x4 0x2 .end array-data .end method .method private converCharToInt([C)[I .registers 8 .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/NumberFormatException; } .end annotation .line 409 array-length v0, p1 new-array v0, v0, [I .line 411 array-length v1, p1 const/4 v2, 0x0 move v3, v2 :goto_6 if-ge v2, v1, :cond_1e aget-char v4, p1, v2 add-int/lit8 v5, v3, 0x1 .line 412 invoke-static {v4}, Ljava/lang/String;->valueOf(C)Ljava/lang/String; move-result-object v4 invoke-virtual {v4}, Ljava/lang/String;->trim()Ljava/lang/String; move-result-object v4 invoke-static {v4}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result v4 aput v4, v0, v3 add-int/lit8 v2, v2, 0x1 move v3, v5 goto :goto_6 :cond_1e return-object v0 .end method .method private convertIdcarBy15bit(Ljava/lang/String;)Ljava/lang/String; .registers 7 .line 238 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v0 const/16 v1, 0xf const/4 v2, 0x0 if-eq v0, v1, :cond_a return-object v2 .line 242 :cond_a invoke-direct {p0, p1}, Lcom/common/uitl/IdcardValidator;->isDigital(Ljava/lang/String;)Z move-result v0 if-eqz v0, :cond_85 const/16 v0, 0xc const/4 v1, 0x6 .line 244 invoke-virtual {p1, v1, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object v0 .line 247 :try_start_17 new-instance v3, Ljava/text/SimpleDateFormat; const-string v4, "yyMMdd" invoke-direct {v3, v4}, Ljava/text/SimpleDateFormat;->(Ljava/lang/String;)V invoke-virtual {v3, v0}, Ljava/text/SimpleDateFormat;->parse(Ljava/lang/String;)Ljava/util/Date; move-result-object v0 :try_end_22 .catch Ljava/text/ParseException; {:try_start_17 .. :try_end_22} :catch_23 goto :goto_28 :catch_23 move-exception v0 .line 249 invoke-virtual {v0}, Ljava/text/ParseException;->printStackTrace()V move-object v0, v2 .line 251 :goto_28 invoke-static {}, Ljava/util/Calendar;->getInstance()Ljava/util/Calendar; move-result-object v3 .line 252 invoke-virtual {v3, v0}, Ljava/util/Calendar;->setTime(Ljava/util/Date;)V const/4 v0, 0x1 .line 253 invoke-virtual {v3, v0}, Ljava/util/Calendar;->get(I)I move-result v0 invoke-static {v0}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; move-result-object v0 .line 255 new-instance v3, Ljava/lang/StringBuilder; invoke-direct {v3}, Ljava/lang/StringBuilder;->()V const/4 v4, 0x0 invoke-virtual {p1, v4, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object v1 invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 const/16 v1, 0x8 invoke-virtual {p1, v1}, Ljava/lang/String;->substring(I)Ljava/lang/String; move-result-object p1 invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 .line 257 invoke-virtual {p1}, Ljava/lang/String;->toCharArray()[C move-result-object v0 if-eqz v0, :cond_84 .line 261 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v1 new-array v1, v1, [I .line 264 invoke-direct {p0, v0}, Lcom/common/uitl/IdcardValidator;->converCharToInt([C)[I move-result-object v0 .line 266 invoke-direct {p0, v0}, Lcom/common/uitl/IdcardValidator;->getPowerSum([I)I move-result v0 .line 269 invoke-direct {p0, v0}, Lcom/common/uitl/IdcardValidator;->getCheckCodeBySum(I)Ljava/lang/String; move-result-object v0 if-nez v0, :cond_73 return-object v2 .line 276 :cond_73 new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 :cond_84 return-object p1 :cond_85 return-object v2 .end method .method private getCheckCodeBySum(I)Ljava/lang/String; .registers 2 .line 363 rem-int/lit8 p1, p1, 0xb packed-switch p1, :pswitch_data_28 const/4 p1, 0x0 goto :goto_27 .line 366 :pswitch_7 const-string p1, "2" goto :goto_27 .line 369 :pswitch_a const-string p1, "3" goto :goto_27 .line 372 :pswitch_d const-string p1, "4" goto :goto_27 .line 375 :pswitch_10 const-string p1, "5" goto :goto_27 .line 378 :pswitch_13 const-string p1, "6" goto :goto_27 .line 381 :pswitch_16 const-string p1, "7" goto :goto_27 .line 384 :pswitch_19 const-string p1, "8" goto :goto_27 .line 387 :pswitch_1c const-string p1, "9" goto :goto_27 .line 390 :pswitch_1f const-string p1, "x" goto :goto_27 .line 393 :pswitch_22 const-string p1, "0" goto :goto_27 .line 395 :pswitch_25 const-string p1, "1" :goto_27 return-object p1 :pswitch_data_28 .packed-switch 0x0 :pswitch_25 :pswitch_22 :pswitch_1f :pswitch_1c :pswitch_19 :pswitch_16 :pswitch_13 :pswitch_10 :pswitch_d :pswitch_a :pswitch_7 .end packed-switch .end method .method private getPowerSum([I)I .registers 8 .line 340 iget-object v0, p0, Lcom/common/uitl/IdcardValidator;->power:[I array-length v0, v0 array-length v1, p1 const/4 v2, 0x0 if-eq v0, v1, :cond_8 return v2 :cond_8 move v0, v2 move v1, v0 .line 344 :goto_a array-length v3, p1 if-ge v0, v3, :cond_21 move v3, v2 .line 345 :goto_e iget-object v4, p0, Lcom/common/uitl/IdcardValidator;->power:[I array-length v5, v4 if-ge v3, v5, :cond_1e if-ne v0, v3, :cond_1b .line 347 aget v5, p1, v0 aget v4, v4, v3 mul-int/2addr v5, v4 add-int/2addr v1, v5 :cond_1b add-int/lit8 v3, v3, 0x1 goto :goto_e :cond_1e add-int/lit8 v0, v0, 0x1 goto :goto_a :cond_21 return v1 .end method .method private isDigital(Ljava/lang/String;)Z .registers 3 if-eqz p1, :cond_12 .line 327 const-string v0, "" invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_b goto :goto_12 :cond_b const-string v0, "^[0-9]*$" invoke-virtual {p1, v0}, Ljava/lang/String;->matches(Ljava/lang/String;)Z move-result p1 goto :goto_13 :cond_12 :goto_12 const/4 p1, 0x0 :goto_13 return p1 .end method .method private isIdcard(Ljava/lang/String;)Z .registers 3 if-eqz p1, :cond_12 .line 291 const-string v0, "" invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_b goto :goto_12 :cond_b const-string v0, "(^\\d{15}$)|(\\d{17}(?:\\d|x|X)$)" invoke-static {v0, p1}, Ljava/util/regex/Pattern;->matches(Ljava/lang/String;Ljava/lang/CharSequence;)Z move-result p1 goto :goto_13 :cond_12 :goto_12 const/4 p1, 0x0 :goto_13 return p1 .end method .method private isValidate18Idcard(Ljava/lang/String;)Z .registers 6 .line 94 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v0 const/4 v1, 0x0 const/16 v2, 0x12 if-eq v0, v2, :cond_a return v1 :cond_a const/16 v0, 0x11 .line 98 invoke-virtual {p1, v1, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object v3 .line 100 invoke-virtual {p1, v0, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object p1 .line 104 invoke-direct {p0, v3}, Lcom/common/uitl/IdcardValidator;->isDigital(Ljava/lang/String;)Z move-result v0 if-eqz v0, :cond_41 .line 105 invoke-virtual {v3}, Ljava/lang/String;->toCharArray()[C move-result-object v0 if-eqz v0, :cond_3f .line 111 invoke-virtual {v3}, Ljava/lang/String;->length()I move-result v2 new-array v2, v2, [I .line 113 invoke-direct {p0, v0}, Lcom/common/uitl/IdcardValidator;->converCharToInt([C)[I move-result-object v0 .line 117 invoke-direct {p0, v0}, Lcom/common/uitl/IdcardValidator;->getPowerSum([I)I move-result v0 if-nez v0, :cond_31 return v1 .line 123 :cond_31 invoke-direct {p0, v0}, Lcom/common/uitl/IdcardValidator;->getCheckCodeBySum(I)Ljava/lang/String; move-result-object v0 if-nez v0, :cond_38 return v1 .line 128 :cond_38 invoke-virtual {p1, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z move-result p1 if-nez p1, :cond_3f return v1 :cond_3f const/4 p1, 0x1 return p1 :cond_41 return v1 .end method # virtual methods .method public is15Idcard(Ljava/lang/String;)Z .registers 3 if-eqz p1, :cond_12 .line 302 const-string v0, "" invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_b goto :goto_12 :cond_b const-string v0, "^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$" invoke-static {v0, p1}, Ljava/util/regex/Pattern;->matches(Ljava/lang/String;Ljava/lang/CharSequence;)Z move-result p1 goto :goto_13 :cond_12 :goto_12 const/4 p1, 0x0 :goto_13 return p1 .end method .method public is18Idcard(Ljava/lang/String;)Z .registers 3 .line 314 const-string v0, "^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([\\d|x|X]{1})$" .line 315 invoke-static {v0, p1}, Ljava/util/regex/Pattern;->matches(Ljava/lang/String;Ljava/lang/CharSequence;)Z move-result p1 return p1 .end method .method public isValidate15Idcard(Ljava/lang/String;)Z .registers 13 .line 143 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v0 const/16 v1, 0xf const/4 v2, 0x0 if-eq v0, v1, :cond_a return v2 .line 148 :cond_a invoke-direct {p0, p1}, Lcom/common/uitl/IdcardValidator;->isDigital(Ljava/lang/String;)Z move-result v0 if-eqz v0, :cond_c8 const/4 v0, 0x2 .line 149 invoke-virtual {p1, v2, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object v1 const/4 v3, 0x6 const/16 v4, 0xc .line 150 invoke-virtual {p1, v3, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object v5 const/16 v6, 0x8 .line 151 invoke-virtual {p1, v3, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object v3 invoke-virtual {v3}, Ljava/lang/String;->trim()Ljava/lang/String; move-result-object v3 invoke-static {v3}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result v3 const/16 v7, 0xa .line 152 invoke-virtual {p1, v6, v7}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object v6 invoke-virtual {v6}, Ljava/lang/String;->trim()Ljava/lang/String; move-result-object v6 invoke-static {v6}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result v6 .line 153 invoke-virtual {p1, v7, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object p1 invoke-virtual {p1}, Ljava/lang/String;->trim()Ljava/lang/String; move-result-object p1 invoke-static {p1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result p1 .line 157 iget-object v7, p0, Lcom/common/uitl/IdcardValidator;->cityCode:[Ljava/lang/String; array-length v8, v7 move v9, v2 :goto_48 if-ge v9, v8, :cond_c8 aget-object v10, v7, v9 .line 158 invoke-virtual {v10, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v10 if-eqz v10, :cond_c5 .line 169 :try_start_52 new-instance v1, Ljava/text/SimpleDateFormat; const-string v7, "yyMMdd" invoke-direct {v1, v7}, Ljava/text/SimpleDateFormat;->(Ljava/lang/String;)V invoke-virtual {v1, v5}, Ljava/text/SimpleDateFormat;->parse(Ljava/lang/String;)Ljava/util/Date; move-result-object v1 :try_end_5d .catch Ljava/text/ParseException; {:try_start_52 .. :try_end_5d} :catch_5e goto :goto_63 :catch_5e move-exception v1 .line 171 invoke-virtual {v1}, Ljava/text/ParseException;->printStackTrace()V const/4 v1, 0x0 :goto_63 if-eqz v1, :cond_c4 .line 173 new-instance v5, Ljava/util/Date; invoke-direct {v5}, Ljava/util/Date;->()V invoke-virtual {v5, v1}, Ljava/util/Date;->before(Ljava/util/Date;)Z move-result v5 if-eqz v5, :cond_71 goto :goto_c4 .line 178 :cond_71 new-instance v5, Ljava/util/GregorianCalendar; invoke-direct {v5}, Ljava/util/GregorianCalendar;->()V const/4 v7, 0x1 .line 179 invoke-virtual {v5, v7}, Ljava/util/GregorianCalendar;->get(I)I move-result v8 .line 180 invoke-static {v8}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; move-result-object v8 .line 181 invoke-virtual {v8, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String; move-result-object v0 invoke-virtual {v0}, Ljava/lang/String;->trim()Ljava/lang/String; move-result-object v0 .line 180 invoke-static {v0}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result v0 const/16 v8, 0x32 if-ge v3, v8, :cond_92 if-le v3, v0, :cond_92 return v2 :cond_92 if-lt v6, v7, :cond_c4 if-le v6, v4, :cond_97 goto :goto_c4 .line 195 :cond_97 invoke-virtual {v5, v1}, Ljava/util/GregorianCalendar;->setTime(Ljava/util/Date;)V packed-switch v6, :pswitch_data_ca goto :goto_c4 :pswitch_9e if-lt p1, v7, :cond_c4 const/16 v0, 0x1e if-gt p1, v0, :cond_c4 goto :goto_c3 .line 207 :pswitch_a5 invoke-virtual {v5, v7}, Ljava/util/GregorianCalendar;->get(I)I move-result v0 invoke-virtual {v5, v0}, Ljava/util/GregorianCalendar;->isLeapYear(I)Z move-result v0 if-eqz v0, :cond_b6 if-lt p1, v7, :cond_c4 const/16 v0, 0x1d if-gt p1, v0, :cond_c4 goto :goto_c3 :cond_b6 if-lt p1, v7, :cond_c4 const/16 v0, 0x1c if-gt p1, v0, :cond_c4 goto :goto_c3 :pswitch_bd if-lt p1, v7, :cond_c4 const/16 v0, 0x1f if-gt p1, v0, :cond_c4 :goto_c3 return v7 :cond_c4 :goto_c4 return v2 :cond_c5 add-int/lit8 v9, v9, 0x1 goto :goto_48 :cond_c8 return v2 nop :pswitch_data_ca .packed-switch 0x1 :pswitch_bd :pswitch_a5 :pswitch_bd :pswitch_9e :pswitch_bd :pswitch_9e :pswitch_bd :pswitch_bd :pswitch_9e :pswitch_bd :pswitch_9e :pswitch_bd .end packed-switch .end method .method public isValidatedAllIdcard(Ljava/lang/String;)Z .registers 4 .line 52 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v0 const/16 v1, 0xf if-ne v0, v1, :cond_c .line 53 invoke-direct {p0, p1}, Lcom/common/uitl/IdcardValidator;->convertIdcarBy15bit(Ljava/lang/String;)Ljava/lang/String; move-result-object p1 .line 55 :cond_c invoke-direct {p0, p1}, Lcom/common/uitl/IdcardValidator;->isValidate18Idcard(Ljava/lang/String;)Z move-result p1 return p1 .end method