我的问题听起来可能不同,但我真的在寻找解决方案。
我在 PHP 中有一个变量,比如说$check
,包含一个字符串。它可以是地址或邮政编码。我们可以在这里应用任何规则来检查变量是否具有邮政编码或地址?
编辑:此网站适用于英国
谢谢
我的问题听起来可能不同,但我真的在寻找解决方案。
我在 PHP 中有一个变量,比如说$check
,包含一个字符串。它可以是地址或邮政编码。我们可以在这里应用任何规则来检查变量是否具有邮政编码或地址?
编辑:此网站适用于英国
谢谢
很详细的链接:这里
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";
我已经基于此编写了一个英国邮政编码验证器,所以我知道它有效:)
正如 Marc B 指出的那样,由于英国邮政编码的字母数字质量,我的最初答案将不起作用。在这种情况下,我建议preg_match
使用正则表达式匹配邮政编码,或者如果您可以确定没有地址会达到那个长度,您可以strlen
打开并查找邮政编码的长度。$check
我建议阅读这个问题,以便对所需的正则表达式进行很好的讨论。
如果它是一个简单的邮政编码(即不像 12345-1234),您可以使用is_numeric
. 这有点小技巧,但它可能适合您的目的。即使它是一个复杂的 zip,您也可以始终使用str_replace
删除-
和检查is_numeric
. 这当然是假设地址有一些字符/字符串内容并且不是完全数字的。