我的问题可能有所不同,但我真的在寻找解决方案。
我在PHP中有一个变量,比方说$check
,包含一个字符串。它可以是地址或邮政编码。我们可以在这里应用任何规则来检查变量是否有邮政编码或地址吗?
编辑:本网站适用于英国
由于
答案 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
。这当然假设地址有一些字符/字符串内容并且不是完全数字。