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

Flo*_*Flo 15 javascript regex zipcode

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

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

有效值:

1001aa  
1001Aa  
1001 AA
Run Code Online (Sandbox Code Playgroud)

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

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

Ste*_*ley 47

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

最终的正则表达式:

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

小提琴单元测试: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个az字符
  6. $ 匹配字符串的结尾
  7. i 最后是不区分大小写的修饰符


小智 6

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

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

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


sab*_*bof 5

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

var rege = /^\d{4} ?[a-z]{2}$/i;
Run Code Online (Sandbox Code Playgroud)