Posted on 2007-10-18 11:53 
hilor 阅读(4019) 
评论(0)  编辑  收藏  所属分类: 
common 
			
			
		 
		javascript和JAVA一样,一些特殊字符需要转义
 
特别是在一些JSP网页的开发中,好多程序员经常会忘掉这点,
例:
1 <% List textList = (List)request.getAttribute("textList"); %>
2 <script>
3 <!--
4 var txtList = new Array();
5 <% for ( int i = 0 ; i < textList.size() ; i++) { %>
6 txtList[<%=i%>] = "<%=textList.get(i)%>";
7 <% } %>
8 -->
9 </script>
 
 
这段JS就存在问题,未对特殊符号进行处理.有特殊符号的情况下有可能报JSERROR
 
JAVASCRIPT中需要转义的有:
 
    
        
            | 转义序列 | 
            字符 | 
        
        
            | \b | 
            退格 | 
        
        
            | \f | 
            走纸换页 | 
        
        
            | \n | 
            换行 | 
        
        
            | \r | 
            回车 | 
        
        
            | \t | 
            横向跳格 (Ctrl-I) | 
        
        
            | \' | 
            单引号 | 
        
        
            | \" | 
            双引号 | 
        
        
            | \\ | 
            反斜杠 | 
        
    
此外,对/符号我觉得也有必要进行处理,因为象 --></script> 这样的字符串也会使SCRIPT出错.
 
 
下面提供一个比较实用java的方法,做这个特殊符号的处理:
1 <% List textList = (List)request.getAttribute("textList"); %>
2 <script>
3 <!--
4 var txtList = new Array();
5 <% for ( int i = 0 ; i < textList.size() ; i++) { %>
6 txtList[<%=i%>] = "<%=JavaScriptUtils.javaScriptEscape(textList.get(i))%>";
7 <% } %>
8 -->
9 </script>