此例子只考虑少量的敏感词词库替换。
let comments = "sexy girl yes, no sexy fuck";
let abusiveWordsData = ['fuck', 'ass', 'sexy girl', 'sexy']; //敏感词词库
function replaceWords (comments){
const rgx = new RegExp(abusiveWordsData.join('|'), 'gi'); //拼接成正则 /fuck|ass|sexy girl|sexy/gi
return comments.replace(rgx, '***');
}
replaceWords(comments); //"*** yes, no *** ***"
注意这个例子中’sexy girl’, 'sexy‘ 顺序。在正则匹配的时候,会先寻找和替换“sexy girl”,之后再替换“sexy”.
如果反着写, 就不能全部匹配了。因为把sexy替换成***后,就没有"sexy girl"可以匹配了。
let comments = "sexy girl yes, no sexy fuck";
let abusiveWordsData = ['fuck', 'ass', 'sexy', 'sexy girl']; //敏感词词库
function replaceWords (comments){
const rgx = new RegExp(abusiveWordsData.join('|'), 'gi'); //拼接成正则 /fuck|ass|sexy girl|sexy/gi
return comments.replace(rgx, '***');
}
replaceWords(comments); //"*** girl yes, no *** ***"