1 回答

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超8個(gè)贊
如果我理解正確,您想在html字符串中搜索過濾器列表中的單詞,并將它們替換為一些HTML編碼字符串加上*代替“壞詞”。
Regex 是一個(gè)很好的解決方案。
所以假設(shè)你有一個(gè)這樣的單詞列表:
List<string> badWords = new List<string>
{
"Damn",
"Hell",
"Idiot"
};
這是你的HTML。
var html = "You're a damn idIOT!!";
好吧,不是很多HTML,但請(qǐng)耐心等待。
現(xiàn)在您遍歷單詞列表,我們Regex為每個(gè)單詞創(chuàng)建一個(gè)忽略大小寫的單詞。然后根據(jù)單詞的長度,我們創(chuàng)建一個(gè)替換字符串。然后調(diào)用Regex.Replace()。
foreach (var word in badWords)
{
Regex rgx = new Regex(word, RegexOptions.IgnoreCase);
var blocked = new string('*', word.Length);
var replacement = "<span style='background-color: rgb(255, 0, 0);'>" + blocked + "</span>";
html = rgx.Replace(html, replacement);
}
編輯
此外,您實(shí)際上并不需要重新發(fā)明輪子。這是一篇關(guān)于褻瀆過濾器的精彩 SO 帖子。
- 1 回答
- 0 關(guān)注
- 224 瀏覽
添加回答
舉報(bào)