用于替换多个缩写的jQuery/Javascript解决方案

用于替换多个缩写的jQuery/Javascript解决方案,javascript,jquery,string,replace,Javascript,Jquery,String,Replace,例如,我需要一些东西来解析一个字符串,遍历并用它们的全字替换多个街道类型缩写('Rd'将变成'Road')。这是一种回答,但我希望有一个像下面这样的单一对象,因为这将是一个相当长的列表,这将有助于保持正确的组织 var streets = { 'RD': 'ROAD', 'ST': 'STREET', 'PL': 'PLACE'}; 我知道我以前见过这样的事情,但我有点不知所措,不知如何从这里开始。我知道我需要使用有问题的字符串并通过这个“过滤器”运行

例如,我需要一些东西来解析一个字符串,遍历并用它们的全字替换多个街道类型缩写('Rd'将变成'Road')。这是一种回答,但我希望有一个像下面这样的单一对象,因为这将是一个相当长的列表,这将有助于保持正确的组织

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

我知道我以前见过这样的事情,但我有点不知所措,不知如何从这里开始。我知道我需要使用有问题的字符串并通过这个“过滤器”运行值(如果你可以这样称呼它的话),但我不确定如何操作,因为我对这个还是很陌生。非常感谢

您只需要一个简单的for/in循环来迭代键并在字符串中替换它们,如下所示:

var input=“某个RD,另一个ST,某个PL,另一个RD”;
var街道={
"道路",,
'街':'街',
“PL”:“地点”
};
用于(街道上的var键){
var re=新的RegExp(键“gi”);
输入=输入。替换(re,街道[键]);
}

控制台日志(输入)对于固定字符串,请像这样使用
.split().join()

var streets = { 'RD': 'ROAD', 'ST': 'STREET', 'PL': 'PLACE'};
var str = 'Some ST that is by the PL along the RD where the ST is by that PL.'

for(k in streets){ str = str.split(k).join(streets[k]) }
结果

console.log(str)
Some STREET that is by the PLACE along the ROAD where the STREET is by that PLACE.

非常感谢,我想那肯定会有用的。你能详细介绍一下这个循环是如何工作的吗?或者我应该提出一个新问题吗?没问题,很乐意帮忙。循环正在迭代
街道
对象的属性。有关详细信息,请参阅。@Rorymcrossan如果密钥不是互斥的(一个是另一个的子字符串),则会出现问题。例如-if
RD
RDS
是键。@gurvinder372这是正确的,这就是为什么我注意到要在需要时使正则表达式更精确。