`

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

相关推荐

    C# 撒列实现关键字过滤的实例

    C# 撒列实现关键字过滤的实例,需要的朋友可以参考一下

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

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

    C#开发实例大全(基础卷).软件开发技术联盟(带详细书签) PDF 下载

    实例111 使用重载方法实现不同类型数据的计算 135 5.2 结构与类 136 实例112 通过结构计算矩形的面积 136 实例113 通过类继承计算梯形面积 137 实例114 封装类实现一个简单的计算器 139 实例115 使用面向对象思想...

    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#微软培训资料

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

    [C#]YHbar .net版贴吧程序(SQL数据库)

    │ S.aspx 建立关键字的吧 │ T.aspx 主题列表 │ Tops.ascx 公共头部 │ U.aspx 用户信息 │ Url.aspx 图片展示页 │ ValidateNumber.aspx 验证码页 │ web.config │ ├─Admin │ Admin_Ad.aspx 广告 │ Admin_...

Global site tag (gtag.js) - Google Analytics