Ⅰ 在Jsp页面或者Filter过滤器中怎么过滤脏话
不管是JSP还是Servlet,其Filter过滤器都是一个东西。因为JSP的本质就是Servlet,只不过是被包装了一下,成了标准,让Web服务器都遵循这个标准来解析编译执行而已。 以下演示的就是在JSP中如何过滤脏话(Servlet的处理方式也差不多): 一、 过滤器类 package com.filter;import java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;public class WordsFilter implements Filter { private Map< String, String>map = new HashMap< String, String>(); //过滤器的初始化 public void init(FilterConfig config) throws ServletException { String filePath = config.getInitParameter("filePath");//从配置文件中取得文件的相对路径 ServletContext context = config.getServletContext(); String realPath = context.getRealPath(filePath);//根据相对路径取得绝对路径 try { FileReader freader = new FileReader(realPath);//根据绝对路径,通过文件流来读取文件 BufferedReader br = new BufferedReader(freader); String line = null; while((line=br.readLine()) != null) { String []str = line.split("="); map.put(str[0], str[1]); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { //乱码处理 request.setCharacterEncoding("gb2312"); response.setContentType("text/html;charset=gb2312"); HttpServletRequest HttpReq = (HttpServletRequest) request; HttpReqWrapper hrw = new HttpReqWrapper(HttpReq); hrw.setMap(map); chain.doFilter(hrw, response); } public void destroy() { System.out.println("--过滤器的销毁--"); } }二、请求包装器
package com.filter;import java.util.Iterator;import java.util.Map;import java.util.Set;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRequestWrapper;public class HttpReqWrapper extends HttpServletRequestWrapper { private Map< String,String> map = null; public HttpReqWrapper(HttpServletRequest request) { super(request); } //过滤脏话 public String replace(String str){ StringBuffer sb = new StringBuffer(str); Setkeys = this.getMap().keySet(); Iteratorit = keys.iterator(); String ss = null; while(it.hasNext()) { String key = it.next(); int index = sb.indexOf(key); if(index != -1) { if(key != null) ss = key; sb.replace(index, index+key.length(), this.getMap().get(key)); } } if(ss!=null) { if (sb.toString().indexOf(ss) == -1) { return sb.toString(); } else { return replace(sb.toString()); } } return sb.toString(); }// 重写getParameter()方法 public String getParameter(String str) { if(str.equals("pager.offset")){ return super.getParameter(str); }else{ String content = super.getParameter(str); return replace(content); } } public Map< String,String> getMap() { return map; } public void setMap(Map< String,String> map) { this.map = map; } }
三、脏话列表word.txt妈的=**
老子=**
狗日的=***
我日=我*
TMD=***
我靠=我*
贱人=**
滚=*
操=*
四、web.xml中配置过滤器
<filter>
<filter-name>WordsFilter</filter-name>
<filter-class>com.filter.WordsFilter</filter-class>
<init-param>
<param-name>filePath</param-name>
<param-value>/WEB-INF/word.txt</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>WordsFilter</filter-name>
<url-pattern>/getNote.jsp</url-pattern>
</filter-mapping>
Ⅱ js 聊天框过滤脏话怎么写
varinput.value="大坏制蛋哦哦草";
varsensitivity="草|日";//配置脏话
varsen_arr=sensitivity.split("|");
for(vari=0;i<sen_arr.length;i++){
input.value=input.value.replace(sen_arr[i],"*");
}
Ⅲ 脏话过滤问题
自己做一个聊天程序,就可以自动过滤这些东西,但如果用别人已经做好的软件有点难度了。我以前也编个聊天程序,而且特意把过滤脏话的功能加上。不过只是自己编着玩,没加好的界面。
Ⅳ 求一段JS过滤脏话的代码
把这一段代码改掉if (document.submit_form.name.value=='啊')改成专下面的代码属:if (document.submit_form.name.value.indexOf("啊")>=1)
Ⅳ 如何实现字符串中脏话的过滤
不管是JSP还是Servlet,其Filter过滤器都是一个东西。因为JSP的本质就是Servlet,只不过是被包装了一下,成了标准,让Web服务器都遵循这个标准来解析编译执行而已。 以下演示的就是在JSP中如何过滤脏话(Servlet的处理方式也差不多): 一、 过滤器类 package com.filter;import java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;public class WordsFilter implements Filter { private Map String, String>map = new HashMap String, String>(); //过滤器的初始化 public void init(FilterConfig config) throws ServletException { String filePath = config.getInitParameter("filePath");//从配置文件中取得文件的相对路径 ServletContext context = config.getServletContext(); String realPath = context.getRealPath(filePath);//根据相对路径取得绝对路径 try { FileReader freader = new FileReader(realPath);//根据绝对路径,通过文件流来读取文件 BufferedReader br = new BufferedReader(freader); String line = null; while((line=br.readLine()) != null) { String []str = line.split("="); map.put(str[0], str[1]); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { //乱码处理 request.setCharacterEncoding("gb2312"); response.setContentType("text/html;charset=gb2312"); HttpServletRequest HttpReq = (HttpServletRequest) request; HttpReqWrapper hrw = new HttpReqWrapper(HttpReq); hrw.setMap(map); chain.doFilter(hrw, response); } public void destroy() { System.out.println("--过滤器的销毁--"); } }二、请求包装器
package com.filter;import java.util.Iterator;import java.util.Map;import java.util.Set;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRequestWrapper;public class HttpReqWrapper extends HttpServletRequestWrapper { private Map String,String> map = null; public HttpReqWrapper(HttpServletRequest request) { super(request); } //过滤脏话 public String replace(String str){ StringBuffer sb = new StringBuffer(str); Setkeys = this.getMap().keySet(); Iteratorit = keys.iterator(); String ss = null; while(it.hasNext()) { String key = it.next(); int index = sb.indexOf(key); if(index != -1) { if(key != null) ss = key; sb.replace(index, index+key.length(), this.getMap().get(key)); } } if(ss!=null) { if (sb.toString().indexOf(ss) == -1) { return sb.toString(); } else { return replace(sb.toString()); } } return sb.toString(); }// 重写getParameter()方法 public String getParameter(String str) { if(str.equals("pager.offset")){ return super.getParameter(str); }else{ String content = super.getParameter(str); return replace(content); } } public Map String,String> getMap() { return map; } public void setMap(Map String,String> map) { this.map = map; } }
三、脏话列表word.txt妈的=**
老子=**
狗日的=***
我日=我*
TMD=***
我靠=我*
贱人=**
滚=*
操=*
四、web.xml中配置过滤器
WordsFilter
com.filter.WordsFilter
filePath
/WEB-INF/word.txt
WordsFilter
/getNote.jsp
Ⅵ asp的脏话过滤功能怎么用阿
假设发言的框为抄TEXT1.
<form name="form1" method="post" action="#?sub=1">
<input type="text" name="text1">
</form>
<%
if request("sub")="1" then
content=request.form("text1")
if content="脏话" then content="**"
sql="insert into table (content) values ('"&content&"')"
conn.execute sql
end if
%>
你将插入袭到数据表里的脏话的内容已经换了**,等你显示在网页上时看到的就是**了.
Ⅶ 用C#在.net 留言板中加入脏话过滤功能
用strin.indexof();
例如:
string str = "我说骂人的话";
str.indexof("骂人的话");
返回所在字符的下标,如果没找到返回-1.
if(str.indexof("骂人的话") == -1 )
{
发表留言!
}
else
{
不许骂人。。。
}
可以用这个方法过滤任何字符!也是最简单的方法!正在表达式也能,有兴趣可以去搜搜,但是比较难看懂!
那就用替换:
string str = "源字符串";
str = Regex.Replace(str, "(骂1|骂2|骂3|....)", "*", RegexOptions.IgnoreCase);
我给你写了一遍,你看吧.界面有一个lab,一个textbox,一个按钮
按钮代码如下:
private void button1_Click(object sender, EventArgs e)
{
string message = this.textBox1.Text.ToString();
message = Regex.Replace(message.Trim(),"(鸡|鸭|日)", " *", RegexOptions.IgnoreCase);
this.label1.Text = message;
}
我试过了,绝度没问题的.想过滤什么字在那添加就哦了用"|"隔开!
Ⅷ JavaScript脏话过滤 问题出在哪里
你这个t并未赋值啊,所以没啥结果。
应该这样内:容
varstrarr=[...此略...];
vararr=[...此略...];
strarr=strarr.map(function(e){
arr.forEach(function(e1){
e=e.replace(e1,"*");
});
returne;
});
console.log(strarr);
Ⅸ 脏话过滤了汉字还有什么内容
还有我们自己的不足 如果我们都会英语 那么研发过滤的人也会把英语的脏话过滤的!
Ⅹ 留言板过滤 脏字 问题 求 一个能用的 正则表达式匹配并替换. 如过滤 TextBox1 里面的文本
俺通常用的是C#
TextBox1.Text = Regex.Replace(html, @"正则", "要替换的字符");
有源文本的话,我可以帮您写正则部分,希望对您有一点点帮助。