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

 更新时间:2022年07月06日 09:29:58   作者:猫轻王  
日常使用一些软件时会通过手机号码来注册,这就会用到正则表达式来判断号码是否正确,下面这篇文章主要给大家介绍了关于Golang正则表达式判断手机号或身份证的相关资料,需要的朋友可以参考下

一、正则表达式是什么?

正则表达式(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手机号邮箱正则

//手机号验证规则
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正则判断手机号身份证内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • GO比较两个对象是否相同实战案例

    GO比较两个对象是否相同实战案例

    我们时常有比较两个值是否相等的需求,下面这篇文章主要给大家介绍了关于GO比较两个对象是否相同的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • Go语言通道之无缓冲通道

    Go语言通道之无缓冲通道

    这篇文章介绍了Go语言通道之无缓冲通道,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • 在Go语言中实现DDD领域驱动设计实例探究

    在Go语言中实现DDD领域驱动设计实例探究

    本文将详细探讨在Go项目中实现DDD的核心概念、实践方法和实例代码,包括定义领域模型、创建仓库、实现服务层和应用层,旨在提供一份全面的Go DDD实施指南
    2024-01-01
  • golang 设置web请求状态码操作

    golang 设置web请求状态码操作

    这篇文章主要介绍了golang 设置web请求状态码操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • Go 语言入门之net/url 包

    Go 语言入门之net/url 包

    这篇文章主要介绍了Go 语言入门之net/url 包,文章基于GO语言的相关资料展开 net/url 包的详细内容,具有一定的的参考价值,需要的小伙伴可以参考一下
    2022-05-05
  • Go语言中的并发goroutine底层原理

    Go语言中的并发goroutine底层原理

    这篇文章主要介绍了Go语言中的并发goroutine底层原理,介绍Go语言并发底层原理,以及对比Go语言并发与其他语言并发的优劣,下文详细内容,需要的小伙伴可以参考一下
    2022-02-02
  • go语言中的template使用示例详解

    go语言中的template使用示例详解

    在Go语言中,可以通过text/template和html/template包来处理模板,本文提供了一个使用Go模板的基本示例,包括导入包、创建数据结构、定义模板、执行模板及运行程序,通过这些步骤,可以输出一个格式化的YAML配置
    2024-10-10
  • Go Excelize API源码解读GetSheetViewOptions与SetPageLayout

    Go Excelize API源码解读GetSheetViewOptions与SetPageLayo

    这篇文章主要为大家介绍了Go Excelize API源码解读GetSheetViewOptions与SetPageLayout方法示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • gomod包依赖管理工具使用详解

    gomod包依赖管理工具使用详解

    这篇文章主要为大家介绍了gomod如何解决包管理问题使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • go-zero源码阅读之布隆过滤器实现代码

    go-zero源码阅读之布隆过滤器实现代码

    布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难,这篇文章主要介绍了go-zero源码阅读-布隆过滤器,需要的朋友可以参考下
    2023-02-02

最新评论