意大利财政代码的正则表达式,带有大写字母

Nad*_*rsi 3 javascript regex

我有一个适用于意大利财政代码的正则表达式。

^([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})$

它按我想要的方式工作,但它在Google App Maker中不区分 大小写,并且还匹配小写字母,而我只想匹配大写字母

小智 8

虽然接受的答案可能适合快速检查,但它还远未完成,并且会允许一些不正确的代码。

这篇博文(意大利语)描述了正则表达式验证可以做什么以及如何做。我不是这篇博文的作者,所以所有的功劳都应该归他所有。

长话短说,结果是:

/^(?:[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
Run Code Online (Sandbox Code Playgroud)

这考虑了几乎所有规则,可能是所有可以用正则表达式检查的规则。

要创建完整的验证,需要一个代码函数:财政代码的最后 5 个字符由出生地 ID(4 个字符)和 CRC(1 个字符)组成。检查出生地 ID 是否存在并应用 CRC 计算即可完成该过程。

注意:我还没有完全验证财务代码的所有可能情况,但正则表达式已经解决了我遇到的所有验证问题。另请记住,即使您创建了完美的验证函数,它仍然可能是假的,但形式上正确的财务代码。