`

C# 屏蔽关键字的实现方法

阅读更多
一个论坛屏蔽关键字的功能,这个经常用得到的。

新建一个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;
        }
分享到:
评论

相关推荐

    asp.net (c#) 关键字过滤类

    总之,`BadWordsFilter.cs`文件中的`BadWordsFilter`类实现了ASP.NET(C#)的关键字过滤功能,通过查找和替换黑名单中的关键词,帮助开发者确保应用程序免受恶意输入的影响。这个类的设计和实现会考虑到效率、健壮性和...

    C# 屏蔽消息

    在C#编程中,"屏蔽消息"通常是指控制或拦截对象之间消息的传递,以便实现特定的逻辑或者优化代码执行。这涉及到事件处理、委托、事件委托链等概念。下面我们将详细探讨这些知识点。 1. **事件和委托**: 在C#中,...

    .net过滤用户输入关键字、敏感字符等数据

    通过上述方法,我们可以有效地过滤掉用户输入中的敏感字符和关键字,提高Web应用的安全性。然而值得注意的是,这种方法虽然有效,但并不能完全避免所有的安全漏洞。开发者还应该结合其他安全策略和技术,如输入验证...

    屏蔽父类成员C#程序

    在C#编程中,"屏蔽父类成员"是一种继承机制,用于在子类中隐藏或重定义父类的成员。这种做法通常是为了提供特定于子类的行为,或者更改父类中成员的可见性。让我们深入探讨一下这个概念,以及如何在实际编程中应用。...

    c#百度关键词点击源码(外部浏览器操作)

    然而,手动模拟大量点击既耗时又不实际,因此开发这样的源码可以自动化这一过程,但需要注意的是,如果被搜索引擎检测到异常,可能会被视为违反其使用政策,导致网站被降权甚至被屏蔽。 描述中提到的“浏览器外部...

    C#开发经验技巧宝典

    0972 通用方法实现数据增、删、改功能 567 0973 通用方法获取查询结果DataSet数据集 568 0974 同时查询多条SQL语句 568 0975 如何判断是否查询到结果 568 0976 将图片以二进制格式存储到数据库中(asp.net...

    C#编程经验技巧宝典

    102 &lt;br&gt;0162 如何实现C#中用键完成TAB的功能 102 &lt;br&gt;0163 如何限制文本框密码输入长度 102 &lt;br&gt;0164 数据输入为空提示 103 &lt;br&gt;0165 如何设置文本框光标到末尾 103 &lt;br&gt;0166 输入法调整...

    C#net编程的七个小技巧

    委托是C#中的重要概念,它们允许你将方法作为参数传递。在事件处理中,可以通过声明一个委托类型来定义事件处理函数的签名,然后将该类型的实例赋值给事件,实现事件订阅。例如,你可以创建一个自定义的委托类型`...

    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 小 ...

    C#程序开发范例宝典(第2版).part08

    实例059 在RichTextBox控件中实现关键字描红 69 实例060 在RichTextBox控件中实现项目编号功能 71 实例061 设置RichTextBox控件中文本对齐方式 74 2.4 ListBox控件应用 77 实例062 在ListBox控件间交换数据 77 ...

    C#程序开发范例宝典(第2版).part02

    实例059 在RichTextBox控件中实现关键字描红 69 实例060 在RichTextBox控件中实现项目编号功能 71 实例061 设置RichTextBox控件中文本对齐方式 74 2.4 ListBox控件应用 77 实例062 在ListBox控件间交换数据 77 ...

    C#程序开发范例宝典(第2版).part12

    实例059 在RichTextBox控件中实现关键字描红 69 实例060 在RichTextBox控件中实现项目编号功能 71 实例061 设置RichTextBox控件中文本对齐方式 74 2.4 ListBox控件应用 77 实例062 在ListBox控件间交换数据 77 ...

    IE插件(高亮,过滤)

    在本插件中,BHO被用来实现实时关键字高亮和URL过滤。 2. **关键字高亮** 关键字高亮功能是通过解析网页的HTML内容,查找用户设定的关键字,然后对这些关键字进行样式处理(例如,用特定颜色背景或粗体显示),以...

Global site tag (gtag.js) - Google Analytics