我正在尝试在javascript中构建一个正则表达式来验证荷兰语邮政编码。
邮政编码应包含4个数字,然后可选地包含空格,然后是2个(不区分大小写)字母
有效值:
1001aa
1001Aa
1001 AA
我现在有了这个,但它不起作用:
var rege = /^([0-9]{4}[ ]+[a-zA-Z]{2})$/;
答案 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-9][0-9]{3}
匹配单个非零数字和三个0-9数字?
匹配0或1个空格(您可以使用*
匹配0个或更多空格)(?!sa|sd|ss)
是一个前瞻性测试,用于检查余数不是“sa”,“sd”或“ss”。[a-z]{2}
匹配2个a-z字符$
匹配字符串的结尾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}$
这样它仍然不区分大小写并被引导验证器接受。