我在定义英国邮政编码的正则表达式时遇到了一些问题。我已经制作了符合客户要求的正则表达式,这在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
有人可以帮助我吗?