用javascript将单独的地址字符串序列化为一个

serializing separate address string into one in javascript

本文关键字:一个 序列化 字符串 javascript 单独 地址      更新时间:2023-09-26

您可能已经知道如何将地址解析为单独的部分,如单元号/街道号/街道名称/城镇/州等。。。这里几乎有类似的问题。我想将那些单独输入的数据序列化为一个。例如,我有

Level /
Unit number /
Street number /
Street name /
Street type /
Town /
State /
Post code / Etc...

假设用户输入

空白/空白/10/弗林德斯/车道/空白/VIC/3000

然后我想把信息放在一个字符串中,比如

弗林德斯巷10号VIC 3000

我目前正在做以下

if (level !== '' && level !== 0) {string = level + '/';}
if (unit !== '' && unit !== 0) {string += unit;}
if (streetNo !== '' && streetNo !== 0) {string += '/' + streetNo + ' ';} 
else {string += ' ';}
string += streetName + ' ' + streetType + ' ';
if (town !== '' && town !== '--' && town !== 0) {string += town + ' ';} 
else {string += ' ';}
string += state;

它是硬编码的,但我想不出更好的方法。我想知道是否有更好、高效、专业的方式来实现这一点。

因为您想要在字符串上使用的分隔符似乎会根据它们所遵循的字符串的哪一部分而有所不同(有些具有'/',另一些具有' '),因此您可能无法在那里做很多事情。

如果分隔符始终相同(例如空格),则可能使用数组,然后使用join:

var parts = [];
if (level      !== '' && level      !== 0)      parts.push(level);
if (unit       !== '' && unit       !== 0)      parts.push(unit);
if (streetNo.g !== '' && streetNo.g !== 0)      parts.push(streetNo.g);
if (streetName !== '' && streetName !== 0)      parts.push(streetName);
if (streetType !== '' && streetType !== 0)      parts.push(streetType);
if (town !== '' && town !== 0 && town !== '--') parts.push(town);
if (state      !== '' && state      !== 0)      parts.push(state);
string = parts.join(' ' );