Javascript 荷兰邮政编码的正则表达式
我正试图用javascript构建一个正则表达式来验证荷兰zipcode zipcode应该包含4个数字,然后可选地包含一个空格,然后包含2个(不区分大小写)字母 有效值:Javascript 荷兰邮政编码的正则表达式,javascript,regex,zipcode,Javascript,Regex,Zipcode,我正试图用javascript构建一个正则表达式来验证荷兰zipcode zipcode应该包含4个数字,然后可选地包含一个空格,然后包含2个(不区分大小写)字母 有效值: 1001aa 1001Aa 1001 AA 我现在有了这个,但它不起作用: var rege = /^([0-9]{4}[ ]+[a-zA-Z]{2})$/; 编辑以处理荷兰邮政编码的无前导0要求,并消除SS、SA和SD的匹配。这应该能帮到你 最终正则表达式: var rege = /^[1-9][0-9]{3}
1001aa
1001Aa
1001 AA
我现在有了这个,但它不起作用:
var rege = /^([0-9]{4}[ ]+[a-zA-Z]{2})$/;
编辑以处理荷兰邮政编码的无前导0要求,并消除SS、SA和SD的匹配。这应该能帮到你 最终正则表达式:
var rege = /^[1-9][0-9]{3} ?(?!sa|sd|ss)[a-z]{2}$/i;
小提琴单元测试:
下面是一个细分:
^
匹配字符串的开头[1-9][0-9]{3}
匹配一个非零数字和三个0-9数字?
匹配0或1个空格(您可以使用*
匹配0或更多空格)(?!sa | sd | ss)
是一种前瞻测试,用于检查剩余部分是否为“sa”、“sd”或“ss”[a-z]{2}
匹配2个a-z字符$
匹配字符串的结尾i
是不区分大小写的修饰符这是我的解决办法。最后的i使其不区分大小写:
var rege = /^\d{4} ?[a-z]{2}$/i;
如果您在使用此模式进行引导验证时遇到问题,我建议您将其更改为:
^[1-9][0-9]{3} ?(?!sa|sd|ss|SA|SD|SS)[A-Za-z]{2}$
这样,它仍然不区分大小写,并被引导验证程序接受。是的,这也是一个正确的解决方案。正则表达式中的+是前一个字符正则表达式(或括号中的模式)的一个或多个“命中”。在空格周围使用分隔符,可以使用这些分隔符定义字符范围,例如
[0-6]
从0到6。只需将其替换为“?”(一个空格和一个问号,使其成为可选的旁白:荷兰邮政编码从不以零开头。也没有以SS、SA或SD结尾的邮政编码。感谢Arjan/Bart:您如何在var rege=/^([0-9]{4}?[a-zA-Z]{2})中定义这些额外规则$/;@Florian-我在下面的答案中添加了一个最终测试,该测试将消除SS、SA和SD。试试看!)