js字符串中查看有没有在数组中的值有的话全部替换掉

例如
str="一二三四一二三四一二三四一二三四";
arr=["一","三","五"];

现在一 三在存在arr中 那么把一 三 全部替换掉别的字

emmm..

其实想完成的效果就是在一个textarea中 如果用户输入敏感词就标记为红色 拼接一个标签例如span 但是textarea中不能放入标签 用的div模拟的 但是如果敏感词是这句话的最后一个词的话 用户再输入就会变红色 因为输入到span中了

阅读 3.1k
6 个回答

因为问题主人修改了问题,答案驴唇不对马嘴。自删。

var str = "一二三四一二三四一二三四一二三四";
var arr = ["一", "三", "五"];
var reg = new RegExp(arr.join('|'), 'g');
str = str.replace(reg, "");
console.log(str);   // "二四二四二四二四"
var str = "一二三五一二五"
var arr = ["一","五"]
str.replace(new RegExp("["+arr+"]","g"),"#")//#二三##二#
可以使用正则, #可以替换为你想要的
    str.replace(new RegExp(arr.join('|'), 'g'), "#")
var str = "一二三四一二三四一二三四一二三四";
var arr = ["一", "三", "五"];
var replaceWord ="R";//需要替换的字符
var replacedStr = str.split('').map((item) => {
    return -1 == arr.indexOf(item)?item:replaceWord;
})

一行代码解决问题!

console.log([...str].map((val) => arr.indexOf(val) > -1 ? val = '替换字符' : val));
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题