栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

用多个其他字符串替换多个字符串

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

用多个其他字符串替换多个字符串

具体解决方案

您可以使用一个函数替换每个函数。

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];});

jsfiddle示例

概括它

如果您想动态维护正则表达式并仅将将来的交换添加到地图,则可以执行此操作

new RegExp(Object.keys(mapObj).join("|"),"gi");

生成正则表达式。所以它看起来像这样

var mapObj = {cat:"dog",dog:"goat",goat:"cat"};var re = new RegExp(Object.keys(mapObj).join("|"),"gi");str = str.replace(re, function(matched){  return mapObj[matched];});

要添加或更改其他替换,您只需编辑地图即可。

摆弄动态正则表达式

使其可重用

如果您希望将其作为通用模式,则可以将其拉出类似这样的函数

function replaceAll(str,mapObj){    var re = new RegExp(Object.keys(mapObj).join("|"),"gi");    return str.replace(re, function(matched){        return mapObj[matched.toLowerCase()];    });}

因此,您只需将str和所需替换的映射传递给函数,它将返回转换后的字符串。

摆弄功能

为了确保Object.keys在较旧的浏览器中可以正常工作,请添加一个polyfill例如从MDN或Es5。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/427026.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号