过滤 html标签(转)
来源:互联网 发布:菜鸟网络联系电话 编辑:程序博客网 时间:2024/06/05 18:52
遇到个问题
就是文本域内要是被人书写恶意的js 代码或者html的话
会对整个系统产生严重的影响
找了些资料
自己也正在学习中...
网上转载一篇相关文章
代码:
- import java.util.regex.Pattern;
- public class Test
- {
- public static void main(String[] args)
- {
- String ww="<html>sss<body>ss</body>ssss</html>";
- String ff=html2Text(ww);
- System.out.println(ff);
- }
- public static String html2Text(String inputString) {
- String htmlStr = inputString; // 含html标签的字符串
- String textStr = "";
- java.util.regex.Pattern p_script;
- java.util.regex.Matcher m_script;
- java.util.regex.Pattern p_style;
- java.util.regex.Matcher m_style;
- java.util.regex.Pattern p_html;
- java.util.regex.Matcher m_html;
- try {
- String regEx_script = "<[//s]*?script[^>]*?>[//s//S]*?<[//s]*?///[//s]*?script[//s]*?>"; // 定义script的正则表达式{或<script>]*?>[/s/S]*?<//script>
- // }
- String regEx_style = "<[//s]*?style[^>]*?>[//s//S]*?<[//s]*?///[//s]*?style[//s]*?>"; // 定义style的正则表达式{或<style>]*?>[/s/S]*?<//style>
- // }
- String regEx_html = "<[^>]+>"; // 定义HTML标签的正则表达式
- p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);
- m_script = p_script.matcher(htmlStr);
- htmlStr = m_script.replaceAll(""); // 过滤script标签
- p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);
- m_style = p_style.matcher(htmlStr);
- htmlStr = m_style.replaceAll(""); // 过滤style标签
- p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);
- m_html = p_html.matcher(htmlStr);
- htmlStr = m_html.replaceAll(""); // 过滤html标签
- textStr = htmlStr;
- } catch (Exception e) {
- System.err.println("Html2Text: " + e.getMessage());
- }
- return textStr;
- }
- }
struts中的html过滤
- public static String filter(String value)
- {
- if(value == null || value.length() == 0)
- return value;
- StringBuffer result = null;
- String filtered = null;
- for(int i = 0; i < value.length(); i++)
- {
- filtered = null;
- switch(value.charAt(i))
- {
- case 60: // '<'
- filtered = "<";
- break;
- case 62: // '>'
- filtered = ">";
- break;
- case 38: // '&'
- filtered = "&";
- break;
- case 34: // '"'
- filtered = """;
- break;
- case 39: // '/''
- filtered = "'";
- break;
- }
- if(result == null)
- {
- if(filtered != null)
- {
- result = new StringBuffer(value.length() + 50);
- if(i > 0)
- result.append(value.substring(0, i));
- result.append(filtered);
- }
- } else
- if(filtered == null)
- result.append(value.charAt(i));
- else
- result.append(filtered);
- }
- return result != null ? result.toString() : value;
- }
大家互相学习 哦
- 过滤 html标签(转)
- 过滤html标签(java)
- ASP 过滤 HTML 标签
- .net 过滤html标签
- html标签过滤
- 过滤 HTML 标签例子
- php 过滤 html标签
- 过滤html标签
- 过滤HTML标签
- HTML标签过滤方案
- 过滤 html标签
- Java过滤HTML标签
- 过滤html标签
- js过滤HTML标签
- Java过滤html标签
- JAVA过滤html标签
- java 过滤html标签
- python过滤html 标签
- 模拟电路
- 关于模型驱动开发的一个小争论(zt)
- jscript 中的 try{}catch(){}
- .Net Micro Framework 3.0 SDK发布
- 职业生涯:.NET牛人到底应该知道些什么?
- 过滤 html标签(转)
- Beginning ASP.NET 3.5 in C# 2008 From Novice to Professional Second Edition(ASP.NET 3.5(C#2008)入门 )翻译-第十章(2)
- 北大2590题
- Beginning ASP.NET 3.5 in C# 2008 From Novice to Professional Second Edition(ASP.NET 3.5(C#2008)入门 )翻译-第十章(3)
- 表空间作用与维护
- libvirt XML format
- Windows CE VS WIndows Mobile
- ajax模仿Excel,实现双击GridView单元格保存编辑
- 用PHP控制您的浏览器cache