一个论坛屏蔽关键字的功能,这个经常用得到的。
新建一个txt的文本(代码中读取这个文本文档路径就行,命名随意)
里面的内容一行代表一个,因为我是按行来遍历循环读取要屏蔽的关键字.然后用一个*号来屏蔽一个关键字,
例如: 在论坛中输出"草 泥马",涉及到一些比较敏感的话题、名字,在一些推广比较火爆的网站里,都是不允许的,所以这里会只显示"***"。
代码:
/// <summary>
/// 屏蔽非法字符串(如果有出现非法字符,那么用"***"来替换)
/// </summary>
/// <param name="strText">要检测的字符串</param>
/// <returns>返还一个健康的字符</returns>
/// by www.jbxue.com
public static string CheckKeyword(string strText)
{
IList<string> list = new List<string>(); //实例化一个数据集
string strpath = System.Web.HttpContext.Current.Server.MapPath("function/keyword.txt"); //获取文本文档路径
int a =strpath.LastIndexOf("IFSns");
int b =strpath.IndexOf("function");
string m = strpath.Substring(a+5, b - a - 6);
string PathTxt = strpath.Replace(m, ""); //获取调用这个方法的相对路径
FileStream fs = new FileStream(PathTxt, FileMode.Open, FileAccess.Read); //打开txt文档,将数据存到文件流中
StreamReader reader = new StreamReader(fs, Encoding.Default); //文件读取
string strLine = reader.ReadLine();
while (strLine!=null&&strLine.Length != 0) //有数据
{
list.Add(strLine.Trim().Replace(" ","")); //如果读取到的数据有空格,则删除空格,并且存到string数据集中
strLine = reader.ReadLine(); //每读取一次,从该行下一行开始继续读取
}
fs.Close(); //关闭文件流
foreach (string str in list) //循环遍历文件流
{
if (strText.Contains(str))
{
int lg = str.Length;
string sg = "";
for (int i = 0; i < lg; i++)
{
sg+="*";
}
strText = strText.Replace(str, sg); //如果含有txt文档中的关键字,则替换为"***"
}
}
return strText;
}
分享到:
相关推荐
总之,`BadWordsFilter.cs`文件中的`BadWordsFilter`类实现了ASP.NET(C#)的关键字过滤功能,通过查找和替换黑名单中的关键词,帮助开发者确保应用程序免受恶意输入的影响。这个类的设计和实现会考虑到效率、健壮性和...
在C#编程中,"屏蔽消息"通常是指控制或拦截对象之间消息的传递,以便实现特定的逻辑或者优化代码执行。这涉及到事件处理、委托、事件委托链等概念。下面我们将详细探讨这些知识点。 1. **事件和委托**: 在C#中,...
通过上述方法,我们可以有效地过滤掉用户输入中的敏感字符和关键字,提高Web应用的安全性。然而值得注意的是,这种方法虽然有效,但并不能完全避免所有的安全漏洞。开发者还应该结合其他安全策略和技术,如输入验证...
在C#编程中,"屏蔽父类成员"是一种继承机制,用于在子类中隐藏或重定义父类的成员。这种做法通常是为了提供特定于子类的行为,或者更改父类中成员的可见性。让我们深入探讨一下这个概念,以及如何在实际编程中应用。...
然而,手动模拟大量点击既耗时又不实际,因此开发这样的源码可以自动化这一过程,但需要注意的是,如果被搜索引擎检测到异常,可能会被视为违反其使用政策,导致网站被降权甚至被屏蔽。 描述中提到的“浏览器外部...
0972 通用方法实现数据增、删、改功能 567 0973 通用方法获取查询结果DataSet数据集 568 0974 同时查询多条SQL语句 568 0975 如何判断是否查询到结果 568 0976 将图片以二进制格式存储到数据库中(asp.net...
102 <br>0162 如何实现C#中用键完成TAB的功能 102 <br>0163 如何限制文本框密码输入长度 102 <br>0164 数据输入为空提示 103 <br>0165 如何设置文本框光标到末尾 103 <br>0166 输入法调整...
委托是C#中的重要概念,它们允许你将方法作为参数传递。在事件处理中,可以通过声明一个委托类型来定义事件处理函数的签名,然后将该类型的实例赋值给事件,实现事件订阅。例如,你可以创建一个自定义的委托类型`...
15.4 接口的实现 .182 15.5 抽象类与接口 .195 15.6 小 结 .196 第十六章 组织应用程序 .198 16.1 基 本 概 念 .198 16.2 使用名字空间 .200 16.3 使用指示符 .203 16.4 程 序 示 例 .206 16.5 小 ...
实例059 在RichTextBox控件中实现关键字描红 69 实例060 在RichTextBox控件中实现项目编号功能 71 实例061 设置RichTextBox控件中文本对齐方式 74 2.4 ListBox控件应用 77 实例062 在ListBox控件间交换数据 77 ...
实例059 在RichTextBox控件中实现关键字描红 69 实例060 在RichTextBox控件中实现项目编号功能 71 实例061 设置RichTextBox控件中文本对齐方式 74 2.4 ListBox控件应用 77 实例062 在ListBox控件间交换数据 77 ...
实例059 在RichTextBox控件中实现关键字描红 69 实例060 在RichTextBox控件中实现项目编号功能 71 实例061 设置RichTextBox控件中文本对齐方式 74 2.4 ListBox控件应用 77 实例062 在ListBox控件间交换数据 77 ...
在本插件中,BHO被用来实现实时关键字高亮和URL过滤。 2. **关键字高亮** 关键字高亮功能是通过解析网页的HTML内容,查找用户设定的关键字,然后对这些关键字进行样式处理(例如,用特定颜色背景或粗体显示),以...