Ладно, ребята, я несколько дней бомбил, пытаясь найти хорошее решение для этого.
У меня есть два возможных формата адреса.
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
[Изменить]
Для тех, кому интересно, это то, чем я занимаюсь. (более чистая версия)
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