荷兰邮政编码的正则表达式

时间:2013-07-27 13:48:30

标签: javascript regex zipcode

我正在尝试在javascript中构建一个正则表达式来验证荷兰语邮政编码。

邮政编码应包含4个数字,然后可选地包含空格,然后是2个(不区分大小写)字母

有效值:

1001aa  
1001Aa  
1001 AA

我现在有了这个,但它不起作用:

var rege = /^([0-9]{4}[ ]+[a-zA-Z]{2})$/;

3 个答案:

答案 0 :(得分:45)

编辑处理荷兰邮政编码的前导0要求,并消除SS,SA和SD的匹配。这应该为你做的一切。

最终正则表达式:

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

小提琴单元测试:http://jsfiddle.net/hgU3u/

以下是细分:

  1. ^匹配字符串的开头
  2. [1-9][0-9]{3}匹配单个非零数字和三个0-9数字
  3. ?匹配0或1个空格(您可以使用*匹配0个或更多空格)
  4. (?!sa|sd|ss)是一个前瞻性测试,用于检查余数不是“sa”,“sd”或“ss”。
  5. [a-z]{2}匹配2个a-z字符
  6. $匹配字符串的结尾
  7. i最后是不区分大小写的修饰符

答案 1 :(得分:5)

这是我的解决方案。 i最终使它不区分大小写:

var rege = /^\d{4} ?[a-z]{2}$/i;

答案 2 :(得分:2)

如果您在使用此模式进行引导验证时遇到问题,我建议您将其更改为:

    ^[1-9][0-9]{3} ?(?!sa|sd|ss|SA|SD|SS)[A-Za-z]{2}$

这样它仍然不区分大小写并被引导验证器接受。