【发布时间】:2012-02-04 21:14:05
【问题描述】:
我需要将英国邮政编码一分为二。我有一些代码可以获取前半部分,但它并没有涵盖所有内容(例如 gir0aa)。有没有人有更好的方法可以验证所有英国邮政编码,然后将其分为上半部分和下半部分?谢谢。
function firstHalf($postcode) {
if(preg_match('/^(([A-PR-UW-Z]{1}[A-IK-Y]?)([0-9]?[A-HJKS-UW]?[ABEHMNPRVWXY]?|[0-9]?[0-9]?))\s?([0-9]{1}[ABD-HJLNP-UW-Z]{2})$/i',$postcode))
return preg_replace('/^([A-Z]([A-Z]?\d(\d|[A-Z])?|\d[A-Z]?))\s*?(\d[A-Z][A-Z])$/i', '$1', $postcode);
}
会将 ig62ts 拆分为 ig6 或将 cm201ln 拆分为 cm20。
【问题讨论】:
-
你能发布示例输入和输出数据吗?
-
您意识到您生成的基于正则表达式进行验证的任何内容都可能在几个月后过时......要正确验证,您必须进行查找......并作为参考, “两部分”被称为 incode 和 outcode
-
您关心实际验证还是只想将其分成两个和平?
-
好吧,但我想我可以像马克贝克所说的那样根据数据库验证它。仍然需要将其分解为 2 tho
标签: php validation postal-code