为了过滤一些内容当中包含有JS代码,因此加了对字符的过滤设置。刚开始并没有想到会有大小写的问题。
如果用户直接输入<script>JS代码</script>这样是可以进行过滤,但没考虑到如果用户输入的是大写标签或即有大写也有小小写的标签。
最开始想到一种比较笨的方法就是一一列举,然后一一匹配。着实太笨!
翻看API,发现原来JAVA已自带有这方面的方法。汗颜!!!
代码如下:
/**
* 对字符串当中的JS代码 进行过滤,全部替换为"非法字符"
*
* @param str 要过滤的字符串
* @return 过滤后的字符串
*/
public static String doFilter(String str) {
str = Pattern.compile("<script.*?>.*?</script>", Pattern.CASE_INSENSITIVE).matcher(str).replaceAll("****");
return str;
}