将地址拆分为街道编号、街道名称和街道类型
split address to streetNumber, streetName and streetType
这里是jsBin
如果您不想单击 link
,请在代码此处
var parseString = function (s) {
var streetNumber = s.split(' ')[0];
var streetName = s.split(' ')[1];
var streetType = s.split(' ')[2];
return {
streetNumber: streetNumber,
streetName: streetName,
streetType: streetType,
};
};
var address = "1498 Riedel Street";
console.log("Street Number: " + parseString(address).streetNumber);
console.log("Street Name: " + parseString(address).streetName);
console.log("Street Type: " + parseString(address).streetType);
address = "4860 Dry Pine Bay Rd"
console.log("Street Number: " + parseString(address).streetNumber);
console.log("Street Name: " + parseString(address).streetName);
console.log("Street Type: " + parseString(address).streetType);
现在我想将地址拆分为号码、名称和类型。
StreetType 遵循特定的 ISO 格式,并且始终位于字符串的最后。
问题是街道名称有多个空格。
如何将 StreetName 与街道 Type
中的多个字符拆分
你可以试试
var address = "4860 Dry Pine Bay Rd";
var split = address.split(" ");
var number = split[0];
var name = split[1];
for (var i = 2; i < split.length - 1; i++)
name += " " + split[i];
var type = split[split.length - 1];
这假设街道类型不包含space。
或者您可以使用 slice()
然后 join()
。
var name = split.slice(1, split.length - 1).join(" ");
这需要一个 split
的子数组(不包括第一个和最后一个元素)并加入 space 上的子数组。
使用 Array.shift() and Array.pop() 抓取第一个和最后一个元素,然后将剩余的元素粘在一起。
var parseAddress = function(addr){
var r = {
num: null,
street: null,
type: null
};
var addressComponents = addr.split(/\s/g);
r.num = Number.parseInt(addressComponents.shift());
r.type = addressComponents.pop();
r.street = addressComponents.join(' ');
return r;
};
这里是jsBin 如果您不想单击 link
,请在代码此处var parseString = function (s) {
var streetNumber = s.split(' ')[0];
var streetName = s.split(' ')[1];
var streetType = s.split(' ')[2];
return {
streetNumber: streetNumber,
streetName: streetName,
streetType: streetType,
};
};
var address = "1498 Riedel Street";
console.log("Street Number: " + parseString(address).streetNumber);
console.log("Street Name: " + parseString(address).streetName);
console.log("Street Type: " + parseString(address).streetType);
address = "4860 Dry Pine Bay Rd"
console.log("Street Number: " + parseString(address).streetNumber);
console.log("Street Name: " + parseString(address).streetName);
console.log("Street Type: " + parseString(address).streetType);
现在我想将地址拆分为号码、名称和类型。
StreetType 遵循特定的 ISO 格式,并且始终位于字符串的最后。
问题是街道名称有多个空格。 如何将 StreetName 与街道 Type
中的多个字符拆分你可以试试
var address = "4860 Dry Pine Bay Rd";
var split = address.split(" ");
var number = split[0];
var name = split[1];
for (var i = 2; i < split.length - 1; i++)
name += " " + split[i];
var type = split[split.length - 1];
这假设街道类型不包含space。
或者您可以使用 slice()
然后 join()
。
var name = split.slice(1, split.length - 1).join(" ");
这需要一个 split
的子数组(不包括第一个和最后一个元素)并加入 space 上的子数组。
使用 Array.shift() and Array.pop() 抓取第一个和最后一个元素,然后将剩余的元素粘在一起。
var parseAddress = function(addr){
var r = {
num: null,
street: null,
type: null
};
var addressComponents = addr.split(/\s/g);
r.num = Number.parseInt(addressComponents.shift());
r.type = addressComponents.pop();
r.street = addressComponents.join(' ');
return r;
};