美国联邦税号 (EIN) 的正则表达式

2024-02-16

在输入标记的模式属性中,我使用以下正则表达式来验证美国联邦税 ID 字段。

pattern="^([07][1-7]|1[0-6]|2[0-7]|[35][0-9]|[468][0-8]|9[0-589])-?\d{7}$"

但此正则表达式允许 11-1111111、22-2222222(所有相同数字)类型的条目。不应允许此类进入。请帮助使用正确的正则表达式。


蒂姆链接到格式说明 https://en.m.wikipedia.org/wiki/Employer_Identification_Number#EIN_format联邦纳税识别号 (EIN) 规定前两个数字可以是 83 个数字中的任意一个。剩下的数字可以是任何数字。因此,事实上,更容易制作一个捕获 07, 08, 09, 17, 18, 19, 28, 29, 49, 69, 70, 78, 79, 89, 96, 97 的负模式:

^(?![01][789]|2[89]|[46]9|7[089]|89|9[67])\d\d-\d{7}$

但这并不能捕获EIN11-1111111 or 22-2222222:您可能想要捕获这些,因为它类似于人们填充表单字段的模式类型。您可以捕获这样的重复模式:

^(\d)\1-\1{7}$

但请注意:您无法确定它们无效。每一个11-1111111, 22-2222222, 33-3333333等根据定义有效(因为 11、22、33 等)都是有效的计算机代码前缀。

因此,您最终会拒绝 EIN 合法的某人访问。

拥有 EIN 前缀白名单的缺点是,您的软件现在对数字列表具有外部依赖性,并且您的软件包管理器不会在立法发生变化时通知您。由于很难预测软件的生命周期,因此该程序最终可能会拒绝未来有效的 EIN。你必须在这里权衡一些成本;制作一个非常短的正则表达式可能不是您在这里可以实现的最好的事情。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

美国联邦税号 (EIN) 的正则表达式 的相关文章

随机推荐