regex 意大利会计代码正则表达式,大写字母

u5rb5r59  于 2022-11-26  发布在  其他
关注(0)|答案(2)|浏览(142)

我有一个正则表达式,它适用于意大利的财政代码。
^([A-Za-z]{6}[0-9lmnpqrstuvLMNPQRSTUV]{2}[abcdehlmprstABCDEHLMPRST]{1}[0-9lmnpqrstuvLMNPQRSTUV]{2}[A-Za-z]{1}[0-9lmnpqrstuvLMNPQRSTUV]{3}[A-Za-z]{1})$|([0-9]{11})$
我已经试过这个了。
^([A-Z]{6}[0-9LMNPQRSTUV]{2}[ABCDEHLMPRST]{1}[0-9LMNPQRSTUV]{2}[A-Z]{1}[0-9LMNPQRSTUV]{3}[A-Z]{1})$|([0-9]{11})$
它的工作原理和我想的一样,here,但它在 Google App Maker 中不区分大小写,而且还匹配小写字母,而我想只匹配大写字母

efzxgjgh

efzxgjgh1#

虽然接受的答案可能是确定的快速检查,它仍然远远没有完成,它会让通过一些不正确的代码。
这个blog post(意大利语)描述了正则表达式验证可以做什么以及如何做。我不是这篇博客文章的作者,所以所有的功劳都应该归他。
长话短说结果是:

/^(?:[A-Z][AEIOU][AEIOUX]|[AEIOU]X{2}|[B-DF-HJ-NP-TV-Z]{2}[A-Z]){2}(?:[\dLMNP-V]{2}(?:[A-EHLMPR-T](?:[04LQ][1-9MNP-V]|[15MR][\dLMNP-V]|[26NS][0-8LMNP-U])|[DHPS][37PT][0L]|[ACELMRT][37PT][01LM]|[AC-EHLMPR-T][26NS][9V])|(?:[02468LNQSU][048LQU]|[13579MPRTV][26NS])B[26NS][9V])(?:[A-MZ][1-9MNP-V][\dLMNP-V]{2}|[A-M][0L](?:[1-9MNP-V][\dLMNP-V]|[0L][1-9MNP-V]))[A-Z]$/i

这考虑了几乎所有的规则,可能是可以用正则表达式检查的所有规则。
要创建完整验证,需要使用代码函数:财务代码的最后5个字符由出生地ID(4个字符)和CRC(1个字符)组成。检查是否存在出生地ID并应用CRC计算将完成该过程。
注意:我还没有完全验证所有可能的财务代码,但是正则表达式已经解决了我遇到的所有验证问题。还要记住,即使您创建了一个完美的验证函数,它仍然可能是一个假的,但形式上正确的财务代码。

tag5nh1u

tag5nh1u2#

这解决了我的问题...

^([A-Z]{6}[0-9LMNPQRSTUV]{2}[ABCDEHLMPRST]{1}[0-9LMNPQRSTUV]{2}[A-Z]{1}[0-9LMNPQRSTUV]{3}[A-Z]{1})$|([0-9]{11})$

demo here.

  • App Maker环境中出现一些临时问题或只是一些混乱。*

相关问题