Golang 正则表达式判断手机号或身份证

Golang 正则表达式判断手机号或身份证

Golang轻松学习


个人博客站点:
简书: ? 猫轻王 https://www.jianshu.com/u/6cce817646be
掘金: ? 猫轻王 https://juejin.cn/user/1640918680347453
CSDN: ? 猫轻王 https://blog.csdn.net/moer0
个人项目主页:
https://github.com/moercat


一、正则表达式是什么?

正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为”元字符”)。
正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。

二、详细代码

1.判断手机号

手机号格式:

第一位必为1的十一位数字

代码如下(示例):

// CheckMobile 检验手机号
func CheckMobile(phone string) bool {
    // 匹配规则
    // ^1第一位为一
    // [345789]{1} 后接一位345789 的数字
    // \d d的转义 表示数字 {9} 接9位
    // $ 结束符
    regRuler := "^1[345789]{1}\d{9}$"

    // 正则调用规则
    reg := regexp.MustCompile(regRuler)

    // 返回 MatchString 是否匹配
    return reg.MatchString(phone)

}

2.判断是否为身份证

身份证格式为:

15位数字或18位数字,当为18位数时,最后一位可能为X

代码如下(示例):


// CheckIdCard 检验身份证
func CheckIdCard(card string) bool {
    //18位身份证 ^(d{17})([0-9]|X)$
    // 匹配规则
    // (^d{15}$) 15位身份证
    // (^d{18}$) 18位身份证
    // (^d{17}(d|X|x)$) 18位身份证 最后一位为X的用户
    regRuler := "(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)"

    // 正则调用规则
    reg := regexp.MustCompile(regRuler)

    // 返回 MatchString 是否匹配
    return reg.MatchString(card)
}

总结

通过以上两个例子可以轻松了解在Golang中正则的使用方式。


希望这个博客能对你有所益处。我是轻王,我为自己代言。

golang后端技术

golang 单向 chan类型

2022-6-8 15:34:16

DevOps后端技术

【云原生】Docker中容器的创建与启停

2022-6-8 15:35:49

搜索