英国邮政编码验证中的正则表达式问题

时间:2017-01-02 14:08:59

标签: javascript regex

我在定义英国邮政编码的正则表达式时遇到了一些问题。我已经制作了符合客户要求的正则表达式,这在regexr.com测试中运行良好。但是当我试图在javascript中测试相同时我遇到的情况是它在最后接受了一个字母。

RULE:部分在空格之前可以有2/3/4个字符但第1个应该是数字。右边的部分只能有3个字符,其中1st应该是数字,其他两个必须是字母。

正则表达式:

 /^[A-Za-z](([A-Za-z]|[0-9]){1,2})?([A-Za-z]|[0-9]) [0-9][A-Za-z]{2}/g 

和我的 javascript代码(我通过它检查):

 var str = /^[A-Za-z](([A-Za-z]|[0-9]){1,2})?([A-Za-z]|[0-9]) [0-9][A-Za-z]{2}/g ;
 var res = str.test($scope.pincode);

问题:有效格式为:

A12 1ES A122 1ES ASD 1RD

但它也接受

A12 1ESD

有人可以帮助我吗?

0 个答案:

没有答案