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

程一诺
程一诺
发布时间:2026-10-15| 6人浏览过
原创

本文将介绍如何在Go语言中利用正则表达式高效地校验手机号和身份证号码的格式有效性,提供具体的代码实现与逻辑解析。

正则表达式基础

正则表达式(Regular Expression)是一种用于匹配字符串模式的文本处理工具。它由普通字符(如a-z)和特殊字符(元字符)组成,通过单个字符串即可描述复杂的匹配规则,常用于数据的格式化检查与提取。

Golang实现具体步骤

第1步:手机号格式验证

目的:确保输入的字符串符合中国大陆11位手机号的常见格式。

分析:中国手机号通常为11位数字,首位固定为1,第二位多为3-9之间的数字。根据需求设定如下规则:

  • ^1:以数字1开头。
  • [345789]{1}:第二位必须是3、4、5、7、8、9中的任意一个。
  • \\d{9}:后续紧跟9位任意数字。
  • $:字符串结束。

操作:使用 regexp.MustCompile 编译规则,并通过 MatchString 方法判断是否匹配。

// CheckMobile 检验手机号格式
func CheckMobile(phone string) bool {
	// ^1: 首位为1
	// [345789]: 第二位为指定数字范围
	// \\d{9}: 后接9位数字
	regRuler := "^1[345789]{1}\\d{9}$"
	reg := regexp.MustCompile(regRuler)
	return reg.MatchString(phone)
}

第2步:身份证号码格式验证

目的:兼容旧版15位身份证号及新版18位身份证号(含X/x结尾)。

分析:

  • (^\\d{15}$):完全匹配15位纯数字。
  • (^\\d{18}$):完全匹配18位纯数字。
  • (^\\d{17}(\\d|X|x)$):前17位为数字,最后一位为数字或字母X(不区分大小写)。

操作:使用 “|” 符号连接三个规则,表示满足其一即可。

// CheckIdCard 检验身份证号码格式
func CheckIdCard(card string) bool {
	// 1. 15位纯数字
	// 2. 18位纯数字
	// 3. 17位数字+最后一位(数字/X/x)
	regRuler := "(^\\d{15}$)|(^\\d{18}$)|(^\\d{17}(\\d|X|x)$)"
	reg := regexp.MustCompile(regRuler)
	return reg.MatchString(card)
}

补充:其他常用正则校验

在实际开发中,除了手机号和身份证,邮箱也是常见的校验对象。以下提供针对Go语言的额外校验函数参考:

手机号更广泛匹配规则

若需覆盖更多号段(如6号段),可调整第二位规则:

// 适用于较广泛的手机号验证
func PhoneCheckRule() string {
	return "^1[3|4|5|6|7|8|9][0-9]\\d{8}$"
}

邮箱格式验证

验证标准电子邮箱格式(用户名@域名.后缀):

// 标准邮箱验证
func EmailCheckRule() string {
	// [A-Z0-9._%+-]+ : 用户名部分
	// @[A-Z0-9.-]+ : 域名部分
	// \\. : 转义点号
	// [A-Z]{2,6} : 顶级域名长度2-6位
	return "^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,6}$"
}

总结

以上介绍了在Golang中正则表达式的创建与应用方法。通过 regexp.Compile 预编译规则可以提升运行效率,配合逻辑运算符可实现灵活的格式过滤。以上就是Golang正则表达式判断手机号或身份证方法的详细内容,更多关于Golang正则表达式校验的资料请关注本站其它相关文章!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。