Javascript 从字符串的数组中删除所有出现的字符

Javascript 从字符串的数组中删除所有出现的字符,javascript,string,replace,Javascript,String,Replace,我正在构建一个应用程序,需要从它们的输入中删除大量的文本,我想将删除列表移动到一个数组中,以便于管理 const badWords = ['jamie', 'hutber']; const naughtyString = 'Jamie Hutber everybody likes Jamie Chocolate'; 预期的产出将是: 'everybody likes Chocolate' 因此,如果不清楚,我想从字符串中删除所有不好的单词 你走的是正确的道路,将你的句子拆分成一个数组,删除所

我正在构建一个应用程序,需要从它们的输入中删除大量的文本,我想将删除列表移动到一个数组中,以便于管理

const badWords = ['jamie', 'hutber'];
const naughtyString = 'Jamie Hutber everybody likes Jamie Chocolate';
预期的产出将是:

'everybody likes Chocolate'

因此,如果不清楚,我想从字符串中删除所有不好的单词

你走的是正确的道路,将你的句子拆分成一个数组,删除所有出现的内容:

let goodSentence = naughtyString.split(' ').filter(s => badWords.indexOf(s.toLowerCase()) === -1).join(' ');

您还需要检查,case。。因为你的坏话都是小写的,但是你的搜索字符串大小写不一

const baddwords=['jamie','hutber']; 康斯特·诺特斯特林=‘杰米·哈伯人人都喜欢杰米巧克力’; //“每个人都喜欢巧克力” 函数notBadWordf{ return!badWords.includesf.toLowerCase; } var out=noutyString.split/\s/.filternotBadWord.join; 控制台。注销 对坏话进行一次迭代:

const baddwords=['jamie','hutber']; let NoutyString=‘杰米·哈伯人人都喜欢杰米巧克力’; badWords.forEachbad=>{ 设rgx=newregexpbad,'ig'; NoutyString=NoutyString.replacergx; };
console.lognoutystring 如果是专门针对坏话的,您可以使用以下内容:

var result = naughtyString;
badWords.forEach(function(badWord){
     result = result.split(new RegExp(badWord,'i')).join(Array(badWord.length).join("*"));
});
结果==*******每个人都喜欢****巧克力


我提出了另一个更具可读性的想法:

const baddwords=['jamie','hutber']; let NoutyString=‘杰米·哈伯人人都喜欢杰米巧克力’; const rgx=new RegExpbadWords.join'|','gi'; 让cleanString=noutyString.replacergx;
console.logcleanString;你的问题是什么?对不起,我想这是很清楚的,预期的输出将是。这更清楚了吗?那么,循环一下,做一个替换。你有没有尝试过通过坏词循环删除NootyString中的任何匹配项?啊,过滤器。。。这是绊脚石!!还有一个有趣的想法,如果用户想排除Jamie Hutber,而不是Hutber本身,那么替换可能会起作用:OYe,我也不明白,但有人也给出了我的问题一和另一个答案。也许他只是一个真正讨厌的人jS@JamieHutber我想在这个问题上的否决票可能是因为没有明显的努力。“不过只是猜测而已。”弗兰在编辑之前,发布了一些不起作用的帖子code@wscourge我的编辑只是为了纠正一个拼写错误..:@Fran这怎么可能是零努力,我甚至创建了一个工作片段,有些人甚至懒得去做这件事..这是一次对坏话的迭代,取而代之的是对顽皮的多次迭代。。