gpt4 book ai didi

javascript - 爱尔兰 Eircode 验证

转载 作者:可可西里 更新时间:2023-11-01 01:16:47 28 4
gpt4 key购买 nike

我想知道是否有验证爱尔兰 Eircode 格式的最佳实践。到目前为止,我在 JavaScript 中使用 REGEX 的最佳尝试是基于第 11 页 here 上的官方规范。 .

(第 11 页基于文档中的页码,或第 12 页,如果包括封面)

/^[A,C,D,E,F,H,K,N,P,R,T,V,W,X,Y]{1}[0-9]{1}[0-9,W]{1}[\ \-]?[0-9,A,C,D,E,F,H,K,N,P,R,T,V,W,X,Y]{4}$/

我在这里没有找到任何与 Eircode 相关的问题,所以我想我应该打开这个问题,看看其他人的想法,看看任何人都能想出什么更好/更短/更有效的模式。

编辑:根据@Asunez 的回答删除了逗号。

/^[ACDEFHKNPRTVWXY]{1}[0-9]{1}[0-9W]{1}[\ \-]?[0-9ACDEFHKNPRTVWXY]{4}$/

最佳答案

由于@Manwal 的回答并没有完全按照应有的方式进行,因此我尝试缩短 OP 的正则表达式:

(?:^[AC-FHKNPRTV-Y][0-9]{2}|D6W)[ -]?[0-9AC-FHKNPRTV-Y]{4}$

支持 A65 B2CD 邮政编码的更新版本 - (?:^[AC-FHKNPRTV-Y][0-9]{2}|D6W)[ -]?[0-9AC-FHKNPRTV-Y]{ 4}$

这基本上就是你的正则表达式,有一些变化:

  • 删除了逗号。您不需要逗号来列出 [] 括号内的项目。
  • 尽可能添加范围并节省一些空间(C-FV-Y)。在其他地方添加范围没有好处,因为它不会使正则表达式更短。
  • 您不需要转义空格。正则表达式中的 ""是字面意思。
  • 如果破折号是字符类(方括号)中的最后一个字符,则您也不需要转义破折号
  • 正则表达式的第一部分现在位于非捕获组中,以允许将其与第 3 个位置的唯一可能字母“D6W”大小写进行运算。

也可以只使用后视来处理 D6W,但这比正则表达式更像是一门艺术。

参见正则表达式演示:here

您还可以反转字符类以包含给定字符,虽然它不会使正则表达式更短,但也值得注意。但是,您需要确保不包含其他字符(如点、逗号)。我通过添加 \W token 来实现。

可以试试here

关于javascript - 爱尔兰 Eircode 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33391412/

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