如何检测变量中的地址或邮政编码

时间:2012-09-25 15:30:25

标签: php

我的问题可能有所不同,但我真的在寻找解决方案。

我在PHP中有一个变量,比方说$check,包含一个字符串。它可以是地址或邮政编码。我们可以在这里应用任何规则来检查变量是否有邮政编码或地址吗?

编辑:本网站适用于英国

由于

2 个答案:

答案 0 :(得分:7)

详细链接:here

function IsPostcode($postcode)
    {
    $postcode = strtoupper(str_replace(' ','',$postcode));
    if(preg_match("/^[A-Z]{1,2}[0-9]{2,3}[A-Z]{2}$/",$postcode) || preg_match("/^[A-Z]{1,2}[0-9]{1}[A-Z]{1}[0-9]{1}[A-Z]{2}$/",$postcode) || preg_match("/^GIR0[A-Z]{2}$/",$postcode))
    return true;
    else
    return false;
    }

使用:

$e = "AB235RB";
if (IsPostcode($e))
print "Valid Post Code";
else
print "Invalid Post Code";

我已根据此编写了英国邮政编码验证器,因此我知道它有效:)

答案 1 :(得分:0)

新答案

正如Marc B指出的那样,由于英国邮政编码的字母数字质量,我的初步答案将无效。在这种情况下,我建议preg_match正则表达式匹配邮政编码,或者您可以在$check上执行strlen并查找邮政编码的长度,如果您可以确定没有地址将永远那么长。

我建议您阅读this question,以便对所需的正则表达式进行详细讨论。

旧答案

如果是简单的邮政编码(即不像12345-1234),您可以查看is_numeric。这有点像黑客,但它可能适合你的目的。即使它是复杂的zip,您也可以始终使用str_replace删除-并检查is_numeric。这当然假设地址有一些字符/字符串内容并且不是完全数字。