2016-04-26 6 views
0

javascriptを使用して英国の郵便番号を検証しようとしていますが、スタック上のスレッドを読むことで次のことがうまくいくはずです。しかし、私がこれまでに試した有効な英国の郵便番号に関係なく、if文は失敗します。私はコメントで述べたように、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

JavaScriptに初心者くさいのビットよ、あなたの問題はアンパサンド&のようです。やや単純化されたと私はあなたの正規表現があるべきと信じて訂正:

^(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})$ 

ラインの初めから終わりまで、値全体をキャプチャ、それは

GirobankのPC

または

に一致します

他の組み合わせのうちの1つ非捕捉群(?:...)の中に|によって示された)、その後には、space, digit, letter, letterが終わる。

これが役に立ちます。

よろしく

関連する問題