【发布时间】:2023-04-03 05:47:01
【问题描述】:
好吧,伙计们,我已经轰炸了几天,试图为这个问题找到一个好的解决方案。 我有两种可能的地址格式。
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
【问题讨论】:
-
更重要的是,您如何区分街道和城市?圣之前有多个单词的道路呢?例如格伦艾尔路
-
我在做什么,这是一种相当糟糕的做法。是首先拆分逗号上的字符串,给我 2 个字符串,一个带有门牌号 street 和 city ,另一个带有州和邮政编码。从那里我分裂空间。对于州邮编来说,这很容易处理,只有退回的物品。至于addie,我将通过从数组中取出底部项目和顶部项目来获取长街道名称以获得门牌号和城市,然后将剩余部分组合到街道中。我一团糟,不是很准确,因此我的问题在这里。
-
其余代码在哪里?那是不完整的代码,没有用处。
标签: javascript string street-address