好夥計我已經轟炸了幾天試圖找到一個很好的解決方案。 我有兩種可能的地址格式。地址字符串分裂在JavaScript
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
更重要的是,你如何區分街道和城市? 在St之前有多個詞的道路怎麼樣? 例如 Glen Eyre Road – 2010-01-11 19:20:38
我在做什麼,這是一個相當糟糕的做法。首先將逗號分割爲兩個字符串,一個是房屋號碼街道和城市,另一個是州和郵政編碼。 從那裏我分裂的空間。對於州郵政來說,這很容易處理只返回的物品。 至於addie它的自我,我將通過從底部項目和頂部項目陣列來獲得門牌號碼和城市,然後結合到街道的剩餘物的長街道名稱。 我大混亂,並沒有非常acurate因此我的問題在這裏。 – Arasoi 2010-01-11 19:40:08
你的代碼的其餘部分在哪裏?這是不完整的代碼,並沒有用。 – TetraDev 2016-04-04 20:14:59