日期:2014-05-19  浏览次数:20472 次

论坛如何过滤敏感关键字? 最好在客户端进行.
如何用正则表达式呢,

------解决方案--------------------
这个应该与正则表达式无关,用一个javascript数组包含关键字,输入时遍历该数组进行比较即可。
------解决方案--------------------
写js脚本验证
------解决方案--------------------
客户端就写js 服务器端实现就用httpmodule
------解决方案--------------------
客户端的过滤没有什么实际作用,除非你想装样子
遍历太慢,应该用正则拼接|,另外如果关键词应该缓存而不能每次都读取数据库
------解决方案--------------------
用javascript中的indexOf
------解决方案--------------------
需要using System.Text.RegularExpressions;
正则

Regex regex = new Regex(@ "^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$ ");
bool blnCheck = regex.IsMatch(strEmail);
return blnCheck;
------解决方案--------------------
Dim spat As String = "(xxa|xxb|xxc|xxd|xxe) "
If Regex.IsMatch(oStr, spat, RegexOptions.IgnoreCase) Then
messagebox.show( "非法 ")
End If

如果我想把这些关键字同时替换成*,该如何改?
Regex.IsMatch(oStr, spat, "* ", RegexOptions.IgnoreCase)
------解决方案--------------------
不好意思,函数写错了。
改正如下:

Regex.Replace(oStr, spat, "* ", RegexOptions.IgnoreCase)

返回string
------解决方案--------------------
to: "最好在客户端进行 "
不要总是相信客户的输入,客户端的限制可以很容易绕过,服务端的验证是必要的!
------解决方案--------------------
有道理
------解决方案--------------------
js过滤 不过是个 门面功夫

服务器端过滤 是必须的
------解决方案--------------------
学习ing ...

我都是在服务器端过滤的!
------解决方案--------------------
正则可以吗

我想应该是有个敏感字库

输入时 check


------解决方案--------------------
大致的思路如下:
1 你需要建立一个敏感词库,例如建立一个保存过滤词的xml文件(例如)
2 用户提交内容的时候自动读取xml文件,形成regex的串。
读xml不说了,形成的串应该是 A|B|C|D|E的形式。
3 然后用regex.IsMatch(形成的串)的方法判断