此例子只考慮少量的敏感詞詞庫替換。
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 *** ***"