好伙计我已经轰炸了几天试图找到一个很好的解决方案。 我有两种可能的地址格式。地址字符串分裂在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