脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Golang - Golang正则表达式判断手机号或身份证方法实例

Golang正则表达式判断手机号或身份证方法实例

2022-07-06 13:33猫轻王 Golang

日常使用一些软件时会通过手机号码来注册,这就会用到正则表达式来判断号码是否正确,下面这篇文章主要给大家介绍了关于Golang正则表达式判断手机号或身份证的相关资料,需要的朋友可以参考下

一、正则表达式是什么?

正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。

正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。

二、详细代码

1.判断手机号

手机号格式:

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

代码如下(示例):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 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

代码如下(示例):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 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手机号邮箱正则

?
1
2
3
4
5
6
7
8
9
//手机号验证规则
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中正则的使用方式。

到此这篇关于Golang正则表达式判断手机号或身份证的文章就介绍到这了,更多相关Golang正则判断手机号身份证内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/moer0/article/details/122832400

延伸 · 阅读

精彩推荐
  • GolangGO语言创建钱包并遍历钱包(wallet)的实现代码

    GO语言创建钱包并遍历钱包(wallet)的实现代码

    比特币钱包实际上是一个密钥对,当你安装 一个钱包应用,或者是使用一个比特币客户端来生成一个新地址是,他就会为你生成一个密钥对,今天通过本文...

    辜智强 -buaa6012021-06-26
  • GolangGolang通脉之数据类型详情

    Golang通脉之数据类型详情

    这篇文章主要介绍了Golang通脉之数据类型,在编程语言中标识符就是定义的具有某种意义的词,比如变量名、常量名、函数名等等,Go语言中标识符允许由...

    3912021-11-24
  • GolangGolang 如何表示枚举类型

    Golang 如何表示枚举类型

    go 语言枚举类型是这么用的?在什么场景下会用到枚举?本文对 go 语言枚举做了详细讲解。...

    马哥Linux运维10402021-09-07
  • Golanggolang之JWT实现的示例代码

    golang之JWT实现的示例代码

    这篇文章主要介绍了golang之JWT实现的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随...

    guyan03192402020-07-11
  • Golang一篇文章带你了解Go语言基础之网络编程

    一篇文章带你了解Go语言基础之网络编程

    本次章节我们讲述了什么是TCP,什么是UDP。并且编写了代码如何实现TCP服务端,TCP客户端,UDP服务端,UDP客户端。讲述了为什么会出现粘包,该怎么解决粘...

    Go语言进阶学习10832020-12-30
  • Golanggo语言实现通过FTP库自动上传web日志

    go语言实现通过FTP库自动上传web日志

    这篇文章主要介绍了go语言实现通过FTP库自动上传web日志,非常简单实用,需要的小伙伴快来参考下吧。 ...

    脚本之家3442020-04-25
  • GolangGo语言的队列和堆栈实现方法

    Go语言的队列和堆栈实现方法

    这篇文章主要介绍了Go语言的队列和堆栈实现方法,涉及container/list包的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下 ...

    不吃皮蛋5802020-04-15
  • Golanggolang频率限制 rate详解

    golang频率限制 rate详解

    这篇文章主要介绍了golang频率限制 rate详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    u01006680711362021-03-13