替換多個敏感詞

此例子只考慮少量的敏感詞詞庫替換。

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 *** ***"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章