在 JavaScript 中,单独使用 Replace() 方法在单个操作中将多个字符串替换为多个其他字符串并不简单。为了达到预期的结果,需要替代方法。
具体解决方案:
一种方法涉及使用函数来处理每个替换。
var str = "I have a cat, a dog, and a goat."; var mapObj = { cat:"dog", dog:"goat", goat:"cat" }; str = str.replace(/cat|dog|goat/gi, function(matched){ return mapObj[matched]; });
概括解决方案:
为了使这个解决方案更加灵活,可以使用 Object.keys() 方法和相应的映射对象生成动态正则表达式。
var re = new RegExp(Object.keys(mapObj).join("|"),"gi"); str = str.replace(re, function(matched){ return mapObj[matched.toLowerCase()]; });
现在,可以通过修改映射对象轻松添加或更改替换内容。
可重用函数:
为了重用,可以将此逻辑抽象为独立的函数:
function replaceAll(str,mapObj){ var re = new RegExp(Object.keys(mapObj).join("|"),"gi"); return str.replace(re, function(matched){ return mapObj[matched.toLowerCase()]; }); }
可以使用要转换的字符串和所需的替换作为输入来调用此函数,返回修改后的字符串。
以上是如何在 JavaScript 中同时替换多个字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!