例如,我需要一些可以解析字符串并通过完整单词替换多个街道类型缩写的东西(“Rd”将变为“Road”)。这是here的答案,但是我想要一个对象,如下所示,因为这将是一个很长的列表,这将有助于保持正确的组织,

var streets = {
       'RD': 'ROAD',
       'ST': 'STREET',
       'PL': 'PLACE'};

我知道我以前已经看过类似的东西,但是我对如何从这里开始感到迷茫。我知道我需要处理有问题的字符串,然后通过“过滤器”(如果可以调用它)运行值,但是我不确定该怎么做,因为我对此还很陌生。非常感谢

最佳答案

您只需要一个简单的for / in循环即可遍历键并将其替换为字符串,如下所示:

var input = "something RD, other ST, some PL, another RD";
var streets = {
  'RD': 'ROAD',
  'ST': 'STREET',
  'PL': 'PLACE'
};

for (var key in streets) {
  var re = new RegExp(key, 'gi');
  input = input.replace(re, streets[key]);
}

console.log(input);


如果需要,您还可以更改正则表达式逻辑以使匹配更加准确;它完全取决于您输入字符串的格式。

07-25 23:11
查看更多