一、UBB翻译
为了防止用户用恶意代码留言,大部分论坛都不允许使用HTML语句做为回帖内容(或者进行了转义),但是这限制了用户的发挥,比如用户无法粘贴超链接、无法粘贴图片地址,无法把自己发送的文字进行加粗,改变字号。为了解决这个问题,人们设计出了UBB代码,它提供了有限的、无危害的功能,用户只要遵循代码规则就可以实现用户想要的功能。
UBB实现:字符串替换Replace
二、敏感词处理
直接实例来说明(老被和谐,让哥也和谐一把)
实例:1、做一个WinForm页面,放一个多行文本框,点击按钮对文本框中的内容当作帖子进行判断。如果所发的文字中含"1.TXT"中的过滤词,就进行禁止发送处理。
过滤词:
出售手。枪={BANNED}
出售银行卡={BANNED}
传真群发={BANNED}
春药={BANNED}
网络推广={MOD}
网络营销={MOD}
网上办证={BANNED}
网上订机票={BANNED}
…………………………
1 private void button1_Click(object sender, EventArgs e) 2 { 3 //定义两个集合分别接受禁止发送内容和需要审核的内容 4 List<string> mod = new List<string>(); 5 List<string> banned = new List<string>(); 6 //读取,注意读取的时候别乱码 7 string[] str = File.ReadAllLines(@"d:\1.txt", Encoding.Default); 8 //遍历数组并进行匹配,把匹配结果添加到集合中 9 foreach (string item in str) 10 { 11 Match match = Regex.Match(item, "(.+)={(.+)}"); 12 if (match.Success) 13 { 14 if (match.Groups[2].ToString() == "MOD") 15 { 16 mod.Add(match.Groups[1].ToString()); 17 } 18 else 19 { 20 banned.Add(match.Groups[1].ToString()); 21 } 22 } 23 } 24 //用禁止发送为例 25 //第一种方法,遍历banned数组,如果输入文字包含集合内容就禁止发送 26 //foreach (string item in banned) 27 28 //{ 29 // if (textBox1.Text.Contains(item)) 30 // { 31 // MessageBox.Show("禁止发送"); 32 // return; 33 // } 34 //else 35 //{ 36 // MessageBox.Show("发送成功"); 37 // return; 38 //} 39 40 //} 41 42 //第二中方法,把集合内容转换为数组并用“|”分割,作为正则表达式 43 string reg = string.Join("|", banned.ToArray()); 44 Match match2 = Regex.Match(textBox1.Text, reg); 45 if (match2.Success) 46 { 47 MessageBox.Show("禁止发送"); 48 return; 49 } 50 else 51 { 52 MessageBox.Show("发送成功"); 53 return; 54 } 55 56 }