2016-04-26 97 views
0

我想验证英国邮政编码使用JavaScript,据我所知,在堆栈上的线程阅读,以下应该工作正常。然而,无论我迄今为止尝试过的有效英国邮政编码如何,if语句都会失败。我有点福利局Javascript代码,Javascript正则表达式失败,但不知道为什么

var postcode = $("#postcode").val().toUpperCase(); 
var regex = new RegExp("^((GIR &0AA)|((([A-PR-UWYZ][A-HK-Y]?[0-9][0-9]?)|(([A-PR-UWYZ][0-9][A-HJKSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRV-Y]))) &[0-9][ABD-HJLNP-UW-Z]{2}))$"); 

    if(regex.test(postcode)){ 
     alert('yes'); 
    } else { 
     alert('no'); 
    } 
+1

检查:英国的Javascript正则表达式的邮政编码(http://stackoverflow.com/questions/11081786/javascript-uk-postcode-regex) – smerny

+0

同意@MarioLopez的'&'看起来不合适。 – sln

+0

在问题中添加有关空格的详细信息 –

回答

0

正如在评论中提到,你的问题似乎是与号&。一定程度的简化和纠正我相信你的正则表达式应该是:

^(GIR 0AA|(?:[A-PR-UWYZ][A-HK-Y]?[0-9][0-9]?|[A-PR-UWYZ][0-9][A-HJKSTUW]|[A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRV-Y]) [0-9][ABD-HJLNP-UW-Z]{2})$ 

捕捉整体价值,从线到结束的开始时,它匹配

通汇转帐制的PC

其中一种组合(se由非捕获组(?:...)内部的|配对),接着终止space, digit, letter, letter

希望这会有所帮助。

问候

相关问题