带有4位数和2个可选字母的邮政编码的正则表达式

时间:2015-12-15 20:21:55

标签: javascript regex

我需要在JavaScript中检查邮政编码。规则是4位数是强制性的,最后2位是可选的。数字和字母之间也有1个空格。

示例:

1019 //true
1019PZ //true
1019 PZ //true
1019P //false
(and anything else is false)

这是我到目前为止的正则表达式。但在这个正则表达式中,最后的字母不是可选的,而是强制性的

var regex = /^[1-9][0-9]{3} ?(?!sa|sd|ss)[a-z]{2}$/i;

是否有任何建议可以选择最后的字母?

3 个答案:

答案 0 :(得分:4)

[a-z]{2}组与非捕获组(?:[a-z]{2})?后跟?,以使该组成为可选组。这样做,两个字母将是可选的,你不能只有一个字母。

^[1-9][0-9]{3} ?(?!sa|sd|ss)(?:[a-z]{2})?$

Example Here

答案 1 :(得分:0)

例如,你可以试试这个:

/^[1-9][0-9]{3} ?(?!sa|sd|ss)[a-z]{0,2}$/

只需在零范围内添加零值即可,这意味着您的信件可以从零到两次出现。

答案 2 :(得分:0)

以下作品:

\d{4} ?[A-z]{2}?
  • \ d {4}:匹配4个必填数字
  • "空格?":匹配数字和字母之间的一个可选空格
  • [A-z] {2}?:匹配两个可选字母
相关问题