IMEI,手機號,身份證號格式有效性校驗

2021-10-10 07:33:34 字數 1951 閱讀 2491

imei一般由15位數字組成,有些廠家會在最後加上兩位數字表示版本號。imei的校驗主要通過模10演算法,基於前14位的數字校驗第15位的數值。

class isvalidimei:

abstractscalar()

,(string)

-> boolean |\\d"

)override

operator

funinvoke

(imei: string)

: boolean

return regex.

matches

(imei)

&&luhnalgorithm

(imei)

}private

funluhnalgorithm

(imei: string)

: boolean

else

index ++

}var last =

(sum1 + sum2)%10

if(last !=0)

return last == imei[14]

.tostring()

.toint()

}}

手機號如果不算字首的國家碼,一般由11位數字組成。主要校驗的就是前三位運營商號碼,這個號碼資源可以去工信部**查,時不時會更新

private

val regex : regex =

regex

("^((1[3,8][0-9])|(14[5,7,9])|(15[0-3,5-9])|(17[0,3,5-8])|166|192|198|199)\\d$"

)

身份證的格式,網上也有很多了,國內大陸地區都是18位,對最後一位採用模11-2演算法校驗。

class isvalididentitycard:

abstractscalar()

,(string)

-> boolean (18|19|20)\\d((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d[0-9xx]$"

)private

val regex15 : regex =

regex

("^[1-9]\\d\\d((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d$"

)private

val idcardwi =

listof(7

,9,10

,5,8

,4,2

,1,6

,3,7

,9,10

,5,8

,4,2

)private

val idcardy =

listof

("1"

,"0"

,"x"

,"9"

,"8"

,"7"

,"6"

,"5"

,"4"

,"3"

,"2"

)override

operator

funinvoke

(id: string)

: boolean

return

when

}private

funlastnumberisvalid

(id: string)

: boolean

val lastid = chararray[17]

.tostring()

val mode = sum %

11return

if(idcardy[mode]

.equals

(lastid,

true))

else.")

false}}

}

手機號 身份證格式校驗

呼叫方法傳入引數 手機號 格式正確返回true,錯誤返回false 並且彈出提示框。phone function e 15 0 9 18 0 9 17 0 9 d if e return false else if e.length 11 return false else if myreg.tes...

身份證號驗證

原文 身份證號驗證 public static boolean isidnumber string idnumber 定義判別使用者身份證號的正規表示式 15位或者18位,最後一位可以為字母 string regularexpression 1 9 d 18 19 20 d 0 1 9 10 11 ...

身份證號驗證

身份證號組成 17位數字 1位校驗碼 位址碼 前六位 出生日期碼 第七位至第十位 順序碼 第十五位至十七位 對同年同月同日生的人便定的順序號,順序號奇數為男生,偶數為女生 檢驗碼 第十八位 0 9 x var acity function iscarid sid d x i.test sid ret...