我已經嘗試過.gov網站上的一個,如許多問題所述,但它似乎不適用於短郵政編碼。驗證英國郵政編碼 - 短期和長期版本
我的正則表達式:
preg_match('^(([gG][iI][rR] {0,}0[aA]{2})|((([a-pr-uwyzA-PR-UWYZ][a-hk-yA-HK-Y]?[0-9][0-9]?)|(([a-pr-uwyzA-PR-UWYZ][0-9][a-hjkstuwA-HJKSTUW])|([a-pr-uwyzA-PR-UWYZ][a-hk-yA-HK-Y][0-9][abehmnprv-yABEHMNPRV-Y]))) {0,}[0-9][abd-hjlnp-uw-zABD-HJLNP-UW-Z]{2}))^', $this->post['location'], $matches)
當我使用格式的長郵編:AA9 9ZZ
它的工作原理,但格式AA9
犯規之一。我需要以下格式的工作:
- AA9
- AA99
- AA9 9ZZ
- AA99 9ZZ
首先,不要使用''^作爲分隔符的圖案和使用它帶'''給ancho你的模式。用非捕獲組替換捕獲組,使用i標誌,刪除無用的組。 –
@CasimiretHippolyte ive改變了現在,正則表達式似乎驗證長的postcode,但不是縮短的版本。 –
這只是工作的第一步(特別是使它更具可讀性),而不是解決方案。 –