0

我的问题听起来可能不同,但我真的在寻找解决方案。

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

编辑:此网站适用于英国

谢谢

4

2 回答 2

7

很详细的链接:这里

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";

我已经基于此编写了一个英国邮政编码验证器,所以我知道它有效:)

于 2012-09-25T15:51:29.013 回答
0

新答案

正如 Marc B 指出的那样,由于英国邮政编码的字母数字质量,我的最初答案将不起作用。在这种情况下,我建议preg_match使用正则表达式匹配邮政编码,或者如果您可以确定没有地址会达到那个长度,您可以strlen打开并查找邮政编码的长度。$check

我建议阅读这个问题,以便对所需的正则表达式进行很好的讨论。

旧答案

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

于 2012-09-25T15:39:52.287 回答