Golang正则判断手机号身份证
猫轻王 人气:0一、正则表达式是什么?
正则表达式(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.判断是否为SFZ
SFZ格式为:
15位数字或18位数字,当为18位数时,最后一位可能为X
代码如下(示例):
// CheckIdCard 检验SFZ func CheckIdCard(card string) bool { //18位SFZ ^(\d{17})([0-9]|X)$ // 匹配规则 // (^\d{15}$) 15位SFZ // (^\d{18}$) 18位SFZ // (^\d{17}(\d|X|x)$) 18位SFZ 最后一位为X的用户 regRuler := "(^\\d{15}$)|(^\\d{18}$)|(^\\d{17}(\\d|X|x)$)" // 正则调用规则 reg := regexp.MustCompile(regRuler) // 返回 MatchString 是否匹配 return reg.MatchString(card) }
补充:golang手机号邮箱正则
//手机号验证规则 func PhoneCheckRule() string { return "^1[3|4|5|6|7|8|9][0-9]\\d{8}$" } //邮箱验证规则 func EmailCheckRule() string { return "^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,6}$" }
总结
通过以上两个例子可以轻松了解在Golang中正则的使用方式。
加载全部内容