asp.net敏感词过滤
敏感词过滤是一个能够让用户发表评论的网站的一个很重要的功能(你懂的~)
下面开始全套流程:
1.需要有一套比较完整的词库,由于我的词库很少所以就不贴上来了,网上找找应该很多
2.设计一个可以将词库导入数据库的功能(以最最简单的界面为例,如下图:)
简单到都不好意思贴出来了。。。
3.词库文件的格式有很多
比如:
aaa|1
bbb|2
又或者
aaa={banned}
bbb={mod}
这里以第一种格式为例
管理员将词库文件的内容全部复制黏贴至文本款,点击导入
后台处理代码(由于我的词库只有aaa|1 没有表示都是禁用,没有审核词,所以需要进行审核词判断的要自己进行修改):
string msg = TextBox1.Text.Trim();
string[] words = msg.Split(new char[] {'\r', '\n'}, StringSplitOptions.RemoveEmptyEntries);
foreach (var word in words)
{
string[] w = word.Split('|');
T_Words ww = new T_Words();
ww.Word = w[0];
wordsBll.Add(ww);
}
TextBox1.Text = "";
4.在前台用户点击发表的时候起一个ajax请求到后台进行判断
后台代码:
foreach (var wordse in wordList)
{
string s = wordse.Word;
list.Add(s);
}
string wStrings = string.Join("|", list.ToArray());
if (Regex.IsMatch(msg, wStrings) || Regex.IsMatch(title, wStrings))
{
Response.Write("isBanned");
Response.End();
}
取出数据库词库表中的所有值存放在wordList实体集合中
遍历集合把每个词都用“|”分割加入wString中以正则表达式对用户发表的内容进行匹配
如果匹配到用户发表的内容有任何一个词是禁用的
那么发送isBanned到前台并提示含有禁用词
在这个地方,可以将禁用词放入缓存中,以免每次都要请求数据库,造成资源浪费
这个例子仅仅是为了实现功能,对性能方面没有考虑
可以自己更改~
asp.net敏感词过滤的更多相关文章
- java实现敏感词过滤(DFA算法)
小Alan在最近的开发中遇到了敏感词过滤,便去网上查阅了很多敏感词过滤的资料,在这里也和大家分享一下自己的理解. 敏感词过滤应该是不用给大家过多的解释吧?讲白了就是你在项目中输入某些字(比如输入xxo ...
- 用php实现一个敏感词过滤功能
周末空余时间撸了一个敏感词过滤功能,下边记录下实现过程. 敏感词,一方面是你懂的,另一方面是我们自己可能也要过滤一些人身攻击或者广告信息等,具体词库可以google下,有很多. 过滤敏感词,使用简单的 ...
- 浅析敏感词过滤算法(C++)
为了提高查找效率,这里将敏感词用树形结构存储,每个节点有一个map成员,其映射关系为一个string对应一个TreeNode. STL::map是按照operator<比较判断元素是否相同,以及 ...
- Java实现敏感词过滤
敏感词.文字过滤是一个网站必不可少的功能,如何设计一个好的.高效的过滤算法是非常有必要的.前段时间我一个朋友(马上毕业,接触编程不久)要我帮他看一个文字过滤的东西,它说检索效率非常慢.我把它程序拿过来 ...
- php敏感词过滤
在项目开发中发现有个同事在做敏感词过滤的时候用循环在判断,其实是不用这样做的,用php的数组函数和字符串函数即可实现 function filterNGWords($string) { $badwor ...
- 转:鏖战双十一-阿里直播平台面临的技术挑战(webSocket, 敏感词过滤等很不错)
转自:http://www.infoq.com/cn/articles/alibaba-broadcast-platform-technology-challenges 鏖战双十一-阿里直播平台面临的 ...
- java敏感词过滤
敏感词过滤在网站开发必不可少.一般用DFA,这种比较好的算法实现的. 参考链接:http://cmsblogs.com/?p=1031 一个比较好的代码实现: import java.io.IOExc ...
- Java实现敏感词过滤(转)
敏感词.文字过滤是一个网站必不可少的功能,如何设计一个好的.高效的过滤算法是非常有必要的.前段时间我一个朋友(马上毕业,接触编程不久)要我帮他看一个文字过滤的东西,它说检索效率非常慢.我把它程序拿过来 ...
- DFA和trie特里实现敏感词过滤(python和c语言)
今天的项目是与完成python开展,需要使用做关键词检查,筛选分类,使用前c语言做这种事情.有了线索,非常高效,内存小了,检查快. 到达python在,第一个想法是pip基于外观的c语言python特 ...
随机推荐
- POJ 2318 TOYS | 二分+判断点在多边形内
题意: 给一个矩形的区域(左上角为(x1,y1) 右下角为(x2,y2)),给出n对(u,v)表示(u,y1) 和 (v,y2)构成线段将矩形切割 这样构成了n+1个多边形,再给出m个点,问每个多边形 ...
- 牛客 NOIp模拟1 T1 中位数 解题报告
中位数 题目描述 小\(N\)得到了一个非常神奇的序列\(A\).这个序列长度为\(N\),下标从\(1\)开始.\(A\)的一个子区间对应一个序列,可以由数对\([l,r]\)表示,代表\(A[l] ...
- server reached pm.max_children setting (5), consider raising it
先查看日志 /data1/server/php-cgi/var/log/php-fpm.log[19-Dec-2012 11:41:13] WARNING: [pool www] server rea ...
- java泛型的一些解释
public <A extends Annotation> A getAnnotation(Class<A> annotationClass)我们经常在帮助文档中看到这样的方法 ...
- mac使用基础
Mac 系统的桌面 Mac 的桌面是一个很炫的3D, 背景是一张“星空”图. 2 Dock: 在桌面的下方有一排图标, 叫Dock, 用来快速启动程序, 进入文件夹, 它同时还可以停靠正在运行的程序 ...
- [ CodeVS冲杯之路 ] P1044
不充钱,你怎么AC? 题目:http://codevs.cn/problem/1044/ 机房连续断网,搞得现在才能上博客…… 很经典的DP题,把问题转换一下就是分别求最不降序列和最长上升序列 f[i ...
- ubuntu安装mysql报错
ubuntu换源后安装mysql报错: 原因:版本高,不兼容,只需要还原apt下载源,然后 sudo apt-get install mysql-server即可正常安装mysql
- Sqlite 约束条件 Constraints
一.约束 Constraints 我们在数据库中存储数据的时候,有一些数据有明显的约束条件. 比如一所学校关于教师的数据表,其中的字段列可能有如下约束: 年龄 - 至少大于20岁.如果你想录入一个小于 ...
- OpenCV实践之路——人脸检测(C++/Python) 【转】
转自:http://blog.csdn.net/xingchenbingbuyu/article/details/51105159 版权声明:本文为博主原创文章,转载请联系作者取得授权. 本文由@星沉 ...
- 解析Linux内核的基本的模块管理与时间管理操作---超时处理【转】
转自:http://www.jb51.net/article/79960.htm 这篇文章主要介绍了Linux内核的基本的模块管理与时间管理操作,包括模块加载卸载函数的使用和定时器的用法等知识,需要的 ...