golang 身份證號碼處理

身份證格式驗證

valid:=validation.Validation{}
reg := regexp.MustCompile(`^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$`)
valid.Match(this.GetString("identification_number"),reg,"identification_number").Message("identification_number format is fail")
var datas []string
if valid.HasErrors(){
        for _,err := range valid.Errors {
            datas = append(datas,err.Message)
        }
        this.Data["json"]= this.HTTP_ERROR_WITH_DATA(datas)
        this.ServeJSON()
        this.StopRun()
}

身份證獲取年齡信息

func GetAgeWithIdentificationNumber(identification_number string)int{
    reg := regexp.MustCompile(`^[1-9]\d{5}(18|19|20)(\d{2})((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$`)
    //reg := regexp.MustCompile(`^[1-9]\d{5}(18|19|20)`)
    params :=reg.FindStringSubmatch(identification_number)
    birYear,_:= strconv.Atoi(params[1]+params[2])
    birMonth,_ := strconv.Atoi(params[3])
    age :=time.Now().Year()-birYear
    if int(time.Now().Month()) <birMonth{
        age --
    }
    return age
}
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容