gpt4 book ai didi

regex - 增值税号 HTML5 表格模式

转载 作者:可可西里 更新时间:2023-11-01 13:21:52 27 4
gpt4 key购买 nike

所以我必须在用户注册时验证欧洲增值税号。我有以下模式集:

^((AT)?U[0-9]{8}|(BE)?0[0-9]{9}|(BG)?[0-9]{9,10}|(CY)?[0-9]{8}L|(CZ)?[0-9]{8,10}|(DE)?[0-9]{9}|(DK)?[0-9]{8}|(EE)?[0-9]{9}|(EL|GR)?[0-9]{9}|(ES)?[0-9A-Z][0-9]{7}[0-9A-Z]|(FI)?[0-9]{8}|(FR)?[0-9A-Z]{2}[0-9]{9}|(GB)?([0-9]{9}([0-9]{3})?|[A-Z]{2}[0-9]{3})|(HU)?[0-9]{8}|(IE)?[0-9]S[0-9]{5}L|(IT)?[0-9]{11}|(LT)?([0-9]{9}|[0-9]{12})|(LU)?[0-9]{8}|(LV)?[0-9]{11}|(MT)?[0-9]{8}|(NL)?[0-9]{9}B[0-9]{2}|(PL)?[0-9]{10}|(PT)?[0-9]{9}|(RO)?[0-9]{2,10}|(SE)?[0-9]{12}|(SI)?[0-9]{8}|(SK)?[0-9]{10})$

我还在他们需要的占位符/标题中澄清:输入增值税号:CC0123456789,其中包括 CC(国家代码)。

然而,客户似乎仍然不理解这一点,仍然填写没有国家代码的增值税号,如果输入了国家代码,模式似乎不会检查这一点。

例如,我希望人们始终输入相应的国家代码和他们的增值税号。现在您可以输入 BE0123456789 或 0123456789,但后者是我特别不想要的。

有没有办法让上面的模式强制使用国家代码?

提前感谢您提供更多信息。

编辑:为所有欧洲国家和一些非欧洲国家找到解决方案并进一步优化代码!

^(SM[0-9]{5}|(IS|CH)[0-9]{6}|(ATU|DK|FI|LU|MT|SI|HU)[0-9]{8}|(BE0|DE|EE|EL|GR|PT|УНП|IL|RS|UZ)[0-9]{9}|(PL|SK|TR|UA)[0-9]{10}|(AU|IT|LV|HR)[0-9]{11}|(SE|PH)[0-9]{12}|(CA|ID)[0-9]{15}|BG[0-9]{9,10}|CY[0-9]{8}L|CZ[0-9]{8,10}|ES[0-9A-Z][0-9]{7}[0-9A-Z]|FR[0-9A-Z]{2}[0-9]{9}|GB([0-9]{9}([0-9]{3})?|[A-Z]{2}[0-9]{3})|IE[0-9]S[0-9]{5}L|LT([0-9]{9,12}|[0-9]{12})|NL[0-9]{9}B[0-9]{2}|RO[0-9]{2,10}|(ALK|ALJ)[0-9]{8}L|IN[0-9]{11}(V|C)|NO[0-9]{9}MVA|RU[0-9]{10,12}|CHE[0-9]{9}(TVA|MWST|IVA))$

最佳答案

是的,您只需将国家/地区代码部分设置为强制性

在您的模式中,第一个(以及国家代码的所有其他实例)(AT)? 位于可选组内。 (...) 是一个捕获组,它将一系列字符“分组”。在这里,AT? 量词表示 AT 字符序列可以出现 1 次或 0 次。删除 ( and )?AT 将只需要一次。

(EL|GR)? 中,您只需删除 ? 量词,因为您仍然需要一个组来匹配任一替代项,EL GR

使用

^(ATU[0-9]{8}|BE0[0-9]{9}|BG[0-9]{9,10}|CY[0-9]{8}L|CZ[0-9]{8,10}|DE[0-9]{9}|DK[0-9]{8}|EE[0-9]{9}|(EL|GR)[0-9]{9}|ES[0-9A-Z][0-9]{7}[0-9A-Z]|FI[0-9]{8}|FR[0-9A-Z]{2}[0-9]{9}|GB([0-9]{9}([0-9]{3})?|[A-Z]{2}[0-9]{3})|HU[0-9]{8}|IE[0-9]S[0-9]{5}L|IT[0-9]{11}|LT([0-9]{9}|[0-9]{12})|LU[0-9]{8}|LV[0-9]{11}|MT[0-9]{8}|NL[0-9]{9}B[0-9]{2}|PL[0-9]{10}|PT[0-9]{9}|RO[0-9]{2,10}|SE[0-9]{12}|SI[0-9]{8}|SK[0-9]{10})$

参见 regex demo .

关于regex - 增值税号 HTML5 表格模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45787900/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com