2016-03-15 90 views
0

我已經建立了一個腳本來通過郵編查找洪水區域,我期待驗證該字段,我目前有一個自定義的jQuery驗證方法如下。jQuery驗證英國郵政編碼

jQuery.validator.addMethod("postcodeUK", function (value, element) { 
    return this.optional(element) || /[A-z]{1,2}[0-9]{1,2} ?[0-9][A-Z]{2}/i.test(value); 
}, "Please specify a valid Postcode"); 

唯一的問題是我需要中間的空間,例如AB12 3CD或BC1 9GH。它允許AB123CD或BC19GH。

回答

2

您已經通過?關注了空間。如果你想要它,刪除那?

一對夫婦的其他注意事項:

  • [A-z]不僅僅是A-Z和A-Z也[\]_,和反引號(Za之間的字符)。由於您使用的是i標誌,因此您需要[A-Z][a-z]

  • 您可能想在開始時使用^,在末尾使用$以匹配整個輸入,而不僅僅是一個子集。

Example on regex101.com(你不需要gm標誌我曾經在那裏,剛所以我可以告訴在測試區域內的多個實例)

+0

謝謝,這很完美! :) –

1

已經有一個證明用於驗證jQuery Validate插件的the additional-methods.js file中包含的英國郵政編碼的方法。包括this file或者直接將該方法複製到您的代碼中,然後使用postcodeUK規則。

// Matches UK postcode. Does not match to UK Channel Islands that have their own postcodes (non standard UK) 
$.validator.addMethod("postcodeUK", function(value, element) { 
    return this.optional(element) || /^((([A-PR-UWYZ][0-9])|([A-PR-UWYZ][0-9][0-9])|([A-PR-UWYZ][A-HK-Y][0-9])|([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][ABEHMNPRVWXY]))\s?([0-9][ABD-HJLNP-UW-Z]{2})|(GIR)\s?(0AA))$/i.test(value); 
}, "Please specify a valid UK postcode");