繁体   English   中英

伦敦邮政编码的正则表达式模式不匹配

[英]Regex pattern for London postcodes not matching

我正在尝试为 Javascript 创建一个正则表达式模式,以测试提供的邮政编码值,以确定它是否与伦敦邮政编码匹配。 伦敦邮政编码以以下任一开头:

  • EC、WC、NW、SE 或 SW
  • E#、N#、W#(其中 # 是 1 到 9,个位数)

我的正则表达式模式是: ^[nN|eE|wW][1-9]{1}|[ecEC|wcWC|nw|NW|seSE|swSW]{2} ,由于某种原因,它似乎认为一个值从CE比赛开始? 当我没有指定这个时......

我在哪里错了?

尝试以下方式:

pattern = new RegExp('^(?:(?:n|e|w)[1-9]|(?:ec|wc|[ns]w|se))','gi')

查看在线演示


在您发表评论后,我认为您可能希望根据您在 OP 中的链接完全匹配所有伦敦邮区。

pattern = new RegExp('^(?:e(?:[1-9]|1[0-8]|20)|n(?:[1-9]|1\d|2[012])|w(?:[1-9]|1[0-4])|ec[1-4]|wc[12]|nw(?:[1-9]|1[01])|se(?:[1-9]|1\d|2[0-8])|sw(?:[1-9]|1\d|20)) [a-z]+(?: [a-z']+)*$','gi')

查看在线演示

您可能必须将反斜杠加倍。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM