- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想知道是否有验证爱尔兰 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-F
、V-Y
)。在其他地方添加范围没有好处,因为它不会使正则表达式更短。也可以只使用后视来处理 D6W
,但这比正则表达式更像是一门艺术。
参见正则表达式演示:here
您还可以反转字符类以不包含给定字符,虽然它不会使正则表达式更短,但也值得注意。但是,您需要确保不包含其他字符(如点、逗号)。我通过添加 \W
token 来实现。
可以试试here
关于javascript - 爱尔兰 Eircode 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33391412/
我想知道是否有验证爱尔兰 Eircode 格式的最佳实践。到目前为止,我在 JavaScript 中使用 REGEX 的最佳尝试是基于第 11 页 here 上的官方规范。 . (第 11 页基于文档
我是一名优秀的程序员,十分优秀!