【发布时间】:2020-07-09 08:38:31
【问题描述】:
我正在尝试为 Javascript 创建一个正则表达式模式,以测试提供的邮政编码值,以确定它是否与伦敦邮政编码匹配。 London postcodes 以任一开头:
- EC、WC、NW、SE 或 SW
- E#、N#、W#(其中 # 是 1 到 9,个位数)
我的正则表达式模式是:^[nN|eE|wW][1-9]{1}|[ecEC|wcWC|nw|NW|seSE|swSW]{2},出于某种原因,它似乎认为以 CE 开头的值匹配?当我没有指定这个时......
我哪里错了?
【问题讨论】:
-
使用
(?:...)而不是[...] -
[ecEC] 表示所有这 4 个字符以任意顺序被接受。所以即使是 CE 也会匹配。正如上面评论中所建议的,改变你的括号。
-
把你的模式放到一些在线的正则表达式调试器上试试看是什么意思。
-
@Thefourthbird
^(?:nN|eE|wW)[1-9]{1}|(?:ecEC|wcWC|nw|NW|seSE|swSW){2}更改后似乎无效,不匹配任何内容
标签: javascript html regex