我已经尝试过.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,但不是缩短的版本。 –
这只是工作的第一步(特别是使它更具可读性),而不是解决方案。 –