匹配特定字符串的Javascript正则表达式

匹配特定字符串的Javascript正则表达式,javascript,Javascript,我需要javascript代码方面的帮助 var mapObj = { rd:"road", st:"street", }; var re = new RegExp(Object.keys(mapObj).join("|"),"gi"); package_street_name = package_street_n

我需要javascript代码方面的帮助

        var mapObj = {
          rd:"road",
          st:"street",
        };
        var re = new RegExp(Object.keys(mapObj).join("|"),"gi");
        package_street_name = package_street_name.toLowerCase().replace(re, function(matched){
          return mapObj[matched];
        });
它所做的基本上是将“rd”替换为“road”,将“st”替换为“street”。我怎样才能使它只替换确切的单词呢

比如说。 如果是Verdana路,则应通向Verdana路


我当前的代码是Veroadana Road。

一个简单的方法是在正则表达式中添加
\b

new RegExp("\\b(" + Object.keys(mapObj).join("|") + ")\\b", "gi");
不相关,但当您显式地将输入转换为小写时,输出也将是完全小写的。稍有改进的是,仅在对象中执行查找时应用小写:

var package_street_name=“Verdana路”;
var mapObj={
道路:“道路”,
圣:“街”,
};
var re=new RegExp(“\\b(“+Object.keys(mapObj).join(“|”)+”)\\b,“gi”);
package_street_name=package_street_name.替换(re),功能(匹配){
返回mapObj[matched.toLowerCase()];
});
控制台日志(包名称)