import (
idvalidator "github.com/guanguans/id-validator"
)
func HasIDCard(str string) bool {
reg := regexp.MustCompile(`(\d{17}[0-9Xx])`)
params := reg.FindAllString(str, -1)
for i := 0; i < len(params); i++ {
if idvalidator.IsStrictValid(params[i]) {
return true
}
}
return false
}
func HasPhoneNumber(str string) bool {
str = strings.TrimSpace(str)
if len(str) < 11 {
return false
}
if len(str) == 11 {
return validatePhoneNum(str)
} else {
reg := regexp.MustCompile(`[^a-zA-Z0-9][86]?((13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8})[^a-zA-Z0-9]`)
params := reg.FindAllString(str, -1)
for _, param := range params {
if validatePhoneNum(param) {
return true
}
}
}
return false
}
func validatePhoneNum(mobileNum string) bool {
reg := regexp.MustCompile(`\D`)
mobileNum = reg.ReplaceAllString(mobileNum, "")
if strings.HasPrefix(mobileNum, "86") {
mobileNum = strings.Replace(mobileNum, "86", "", 1)
}
reg = regexp.MustCompile(`^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$`)
return reg.MatchString(mobileNum)
}
Golang 正则匹配身份证和手机号
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 1.用户名正则 import re 4到16位(字母,数字,下划线,减号)if re.match(r'^[a-zA...