身份证/银行卡正则怎么写 - 校验规则与示例

575 字
3 分钟
身份证/银行卡正则怎么写 - 校验规则与示例

🌟 身份与支付场景的校验#

做实名、支付、风控表单时,常需要校验身份证号与银行卡号。正则能做格式校验,但要注意:格式对 ≠ 号码真实存在。星点常用格式正则提供现成规则与验证。


🪪 18 位身份证正则#

^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[0-9Xx]$

逐段解释:

片段含义
[1-9]\d{5}6 位地址码(首位非 0)
出生年份前两位 + 后两位例:18xx / 19xx / 20xx
月份分组月份 01~12
日期分组日期 01~31
\d{3}顺序码
[0-9Xx]校验位(可能是 X)
  • ✅ 11010519491231002X
  • ❌ 11010519491331002X(月份 13 不合法)

注:日期合法性(如 2 月 30 日)正则无法完全覆盖,需代码校验。


🪪 15 位旧身份证#

^[1-9]\d{5}\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}$

15 位为早期格式,无校验位与世纪前缀。


💳 银行卡号正则#

银行卡号通常 16~19 位数字:

^\d{16,19}$

若要限定某些卡种前缀(如银联 62 开头):

^62\d{14,17}$

注意:不同卡组织位数不同;严格校验需 Luhn 算法(正则做不了)。


🧮 为什么正则校验不够#

校验项正则能做需代码
位数/字符✅
身份证校验位❌加权算法
银行卡 Luhn❌校验算法
号码是否存在❌联网核验

💡 实践建议#

  • 前端正则做”快速格式提示”,后端再做严格校验;
  • 身份证日期段可放宽或另加日期校验;
  • 银行卡别用正则判”有效卡”,只做格式初筛。

🔧 常见问题#

身份证校验位能正则算吗? 不能。校验位需按加权公式计算,正则无法完成。
银行卡号必须 16 位吗? 不。常见 16~19 位,因卡组织而异。
能校验港澳台证件吗? 可另写规则;本站格式库覆盖大陆身份证与常见证件。

💬 总结#

身份证正则解决”格式像不像”,银行卡正则解决”位数对不对”。真正的有效性(校验位、Luhn、存在性)必须用代码或联网核验。现成规则用常用格式正则。

立即体验:访问 常用格式正则

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

最后更新于 2026-09-13,距今已过 33 天

部分内容可能已过时

相关文章 智能推荐
1
手机号正则和邮箱正则怎么写 - 常用正则表达式示例大全
正则工具 手机号正则、邮箱正则、身份证正则、URL正则、银行卡正则怎么写?给出可直接复制使用的表达式、逐段解释与正误示例,覆盖网络/联系/身份/日期/数字/字符/开发场景,并说明各语言引擎差异。附在线常用格式正则工具。
2
密码正则和用户名正则怎么写 - 强度校验实例
正则工具 密码正则、用户名正则怎么写?本文给出不同强度密码(含大小写/数字/特殊字符)的正则、用户名规则正则,并用前瞻断言实现"至少包含"条件。附在线常用格式正则工具。
3
正则匹配中文怎么写 - 汉字/中文标点匹配方法
正则工具 正则怎么匹配中文?本文给出汉字范围 [\u4e00-\u9fa5] 与 Unicode 属性 \p{Script=Han} 两种写法,说明中文标点、全角字符、长度统计的注意点。附在线正则测试工具。
4
Python 和 Java 正则怎么写 - 跨语言正则语法对照
正则工具 Python 和 Java 正则写法对照:原始字符串、命名捕获组、Flags、反向引用、前瞻后顾的差异,附代码示例。帮你把正则正确迁移到目标语言。在线多语言正则工具。
5
正则命名捕获组怎么用 - (?<name>) 语法与实例
正则工具 正则命名捕获组 (?<name>...) 怎么用?本文讲清命名组与普通组的区别、各语言写法、提取与替换中的引用方式,并用日期、日志解析等实例说明。附在线正则测试工具。
随机文章 随机推荐
公告
🎉 已升级 2.0 版本,欢迎使用。
分类
标签
站点统计
文章
197
分类
24
标签
747
总字数
334,099
运行时长
0 天
最后活动
0 天前

目录