我有一个工作板,用户通过Google-Maps API提交他的位置,并在地图上绘制作业。
问题是,因为它是基于位置的作业板,我想让最宽泛的输入允许使用邮政编码(因此用户可以输入邮政编码或地址)。无论如何要么解析输入以确定它是否是邮政编码或地址 - 或者Google Maps API是否会返回任何可以让我知道用户提供的输入有多宽的内容?
答案 0 :(得分:1)
我找到了一个你可能想尝试的jquery插件parse addresses VIA google maps。来自doco:
$("#submit").click(function(){
// use parseaddress plugin on an element, send response to callback function
$("#addressinput").parseaddress(callback);
});
var callback = function(cleanaddress) {
console.log(cleanaddress['street']);
console.log(cleanaddress['city']);
console.log(cleanaddress['state']);
console.log(cleanaddress['country']);
console.log(cleanaddress['zip']);
console.log(cleanaddress['lat']);
console.log(cleanaddress['lon']);
}
答案 1 :(得分:1)
有许多SO帖子讨论地址解析;搜索“parse address zip”和类似的短语。还有许多专门用于地址解析的工具。使用它们,因为地址很复杂,需要花费大量时间来学习。让现有工具为您完成工作。
答案 2 :(得分:0)
地址始终至少有一个空格。所以做一个简单的匹配。
if (preg_match("/ /", $input)
{
// its an addresss!
}
地址永远不会是所有数字/破折号
if (preg_match("/^[0-9\-]$/"))
{
// its a zipcode!
}
答案 3 :(得分:0)
我这样做的方法是基本上检查它是否为数字,如果是这样,则假设它是一个邮政编码,否则假设它是一个地址。毕竟,你不可能有一个只是一个数字的地址,而不是别的。
答案 4 :(得分:-1)
美国的邮政编码通常写成:
如果不是其中之一,请尝试将其解释为地址吗?