好吧,伙计们,我已经轰炸了几天,试图为这个问题找到一个好的解决方案。我有两种可能的地址格式。
28 Main St Somecity, NY 12345-6789
or
Main St Somecity, Ny 12345-6789
我需要做的是将两个字符串拆分成一个这样结构的数组
address[0] = HousNumber
address[1] = Street
address[2] = City
address[3] = State
address[4] = ZipCode
我的主要问题是如何解释缺少门牌号码。没有让整个数组将数据向上移动一个。
address[0] = Street
address[1] = City
address[2] = State
address[3] = ZipCode
[编辑]
对于那些想知道这就是我正在做的 atm 的人。(更清洁的版本)
place = response.Placemark[0];
point = new GLatLng(place.Point.coordinates[1],place.Point.coordinates[0]);
FCmap.setCenter(point,12);
var a = place.address.split(',');
var e = a[2].split(" ");
var x = a[0].split(" ");
var hn = x.filter(function(item,index){
return index == 0;
});
var st = x.filter(function(item,index){
return index != 0;
});
var street = '';
st.each(function(item,index){street += item + ' ';});
results[0] = new Hash({
FullAddie: place.address,
HouseNum: hn[0],
Dir: '',
Street: street,
City: a[1],
State: e[1],
ZipCode: e[2],
GPoint: new GMarker(point),
Lat: place.Point.coordinates[1],
Lng: place.Point.coordinates[0]
});
// End Address Splitting