您的位置:首页 > Web前端 > HTML

过滤 html标签(转)

2008-10-29 11:00 423 查看
遇到个问题

就是文本域内要是被人书写恶意的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;

}

大家互相学习 哦
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: