`
dyllove98
  • 浏览: 1409619 次
  • 性别: Icon_minigender_1
  • 来自: 济南
博客专栏
73a48ce3-d397-3b94-9f5d-49eb2ab017ab
Eclipse Rcp/R...
浏览量:39191
4322ac12-0ba9-3ac3-a3cf-b2f587fdfd3f
项目管理checkList...
浏览量:80270
4fb6ad91-52a6-307a-9e4f-816b4a7ce416
哲理故事与管理之道
浏览量:133394
社区版块
存档分类
最新评论

javascript特殊字符转换

阅读更多
javascript特殊字符转换 
Posted on 2007-10-18 11:53 hilor 阅读(1209) 评论(1)  编辑  收藏 所属分类: 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的方法,做这个特殊符号的处理:
 1public class JavaScriptUtils {
 2 public static String javaScriptEscape(String input) {
 3  if (input == null) {
 4   return input;
 5  }
 6  StringBuffer filtered = new StringBuffer(input.length());
 7  char prevChar = '\u0000';
 8  char c;
 9  for (int i = 0; i < input.length(); i++) {
10   c = input.charAt(i);
11   if (c == '"') {
12    filtered.append("\\\"");
13   }
14   else if (c == '\'') {
15    filtered.append("\\'");
16   }
17   else if (c == '\\') {
18    filtered.append("\\\\");
19   }
20   else if (c == '\t') {
21    filtered.append("\\t");
22   }
23   else if (c == '\n') {
24    if (prevChar != '\r') {
25     filtered.append("\\n");
26    }
27   }
28   else if (c == '\r') {
29    filtered.append("\\n");
30   } else if (c == '\f') {
31                filtered.append("\\f");
32  } else if (c == '/') {
33                filtered.append("\\/");
34            }
35   else {
36    filtered.append(c);
37   }
38   prevChar = c;
39  }
40  return filtered.toString();
41 }
42}
43

上面的例子应改为:
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>


分享到:
评论

相关推荐

    html中的特殊字符转换

    本篇将详细讲解HTML中的特殊字符转换及其重要性。 1. **特殊字符转义** HTML中,如果要显示特殊字符本身而不是其功能,可以使用HTML实体(HTML Entities)。例如,小于号 `转义为 `&lt;`,大于号 `&gt;` 转义为 `&gt;...

    HTML特殊字符转换

    为了避免这些字符被浏览器解析为HTML语法,我们需要对它们进行特殊字符转换。这就是"HTML特殊字符转换"这一主题的核心内容。 当我们直接在HTML文档中插入这些特殊字符时,浏览器可能会误解我们的意图。例如,如果...

    前台Javascript转换特殊字符

    "前台JavaScript转换特殊字符"这个主题涉及到的是如何在JavaScript中处理和转换文本中的特殊字符,以确保数据的正确显示和处理。在网页开发中,经常遇到需要对用户输入进行清理或者格式化的情况,比如防止XSS(跨站...

    彻底根治Spring @ResponseBody JavaScript HTML特殊字符

    然而,正是因为这种直接写入,使得特殊字符未经转义就可能引发问题。 1. **HTML转义**: - 当响应体中包含HTML代码时,如果不做处理,浏览器会尝试解析这些代码,可能导致XSS(跨站脚本攻击)。为防止这种情况,...

    json特殊字符串转换

    本篇文章将深入探讨JSON中的特殊字符串转换,以及如何正确处理它们。 一、JSON特殊字符与转义 在JSON中,字符串必须用双引号(")括起来。如果字符串内部需要包含双引号,或者其他特殊字符如反斜杠(\)、换行符...

    解析XML特殊字符方法

    例如,在Python中,可以使用`xml.sax.saxutils.escape()`函数来编码特殊字符,而在JavaScript中,可以使用`encodeURI()`或`encodeURIComponent()`函数。同样,接收XML数据后,可以通过解码函数还原这些字符。 **3. ...

    php javascript html mysql 特殊字符处理.txt

    1. **`htmlspecialchars()`**:用于将特殊字符转换为对应的HTML实体,从而避免被解析为HTML标签或脚本。 - 示例代码: ```php $str = "&lt;script&gt;alert('XSS');&lt;/script&gt;"; $safeStr = htmlspecialchars($str, ENT...

    javascript 特殊字符串

    此外,文档还提到`escapeJavascript`函数,这个函数用于在字符串中转义JavaScript的特殊字符,比如单引号(`'`)和双引号(`"`)。在JavaScript中,单引号和双引号用于字符串的界定,如果不进行转义,字符串内部包含同样...

    字符串内特殊字符在html_javascript_xml等内使用时的转换

    网上有一个通用的转码组件,不仅可以转换javascript的,还可以转换html,xml等的特殊字符,许多帖子都转载了它。但是我对它进行了测试,发现有很多错误,或者是函数过期,或者是替换字符串写错,还有对javascript的...

    js处理特殊字符

    在JavaScript(以下简称JS)开发过程中,经常会遇到需要处理文本字符串中的特殊字符的情况。这些特殊字符可能包括但不限于:`~!@#$%^&*()=|{}':;',[]&lt;&gt;/?~@#&*—|{}"等。对于这些特殊字符的处理,通常涉及到字符串的...

    javaScript处理URL中特殊符号的处理

    这种编码机制是将特殊字符转换为`%`符号后跟字符ASCII码的十六进制表示形式。例如,空格字符在URL中不能直接出现,因此需要编码为`%20`。这种编码方式称为百分号编码(Percent-encoding)。 在JavaScript中,我们...

    javascript经典特效---特殊的HTML字符.rar

    这将会把特殊字符转换为相应的HTML实体。 除了这些基础的字符实体,还有一些特殊的字符实体在JavaScript编程中特别有用,比如`&lt;`和`&gt;`用于表示小于号和大于号,避免在字符串中与HTML标签混淆;`&amp;`用于...

    jsp传参特殊字符

    主要原理是将特殊字符转换为其对应的百分号编码(也称为百分比编码)。例如,“#”会被编码为“%23”,“&”会被编码为“%26”。 #### 3. 不同语言中的URL编码方法 - **JavaScript中的URL编码** - `escape()`:该...

    che:将特殊字符转换为html实体的愚蠢工具

    "che"是一个工具,它的作用就是将特殊字符转换为对应的HTML实体,这样在网页显示时可以正确无误地呈现。 "che"这个工具的名称可能是"Char to HTML Entity"的缩写,它专门用于处理字符串中的特殊字符。根据提供的...

    JavaScript 特殊字符

    你可以在JavaScript中使用反斜杠来向文本字符串添加特殊字符。 插入特殊字符 反斜杠用来在文本字符串中插入省略号、换行符、引号和其他特殊字符。 请看下面的JavaScript代码:var txt=”We are the so-called ...

    url参数中传递特殊字符处理方法

    在 JavaScript 中,可以使用 replace() 方法来处理特殊字符的编码。例如: data2=data2.replace(/\%/g,"%25"); data2=data2.replace(/\#/g,"%23"); data2=data2.replace(/\&/g,"%26"); 在使用 URL 进行参数传递时...

    javascript字符串操作

    - 在字符串中,某些特殊字符需要使用转义字符来表示,如`\n`(换行)、`\t`(制表符)等。 - 示例:`var example = "This is a \ntest string.";` #### 字符串属性与方法 1. **`length`属性**: - `length`属性返回...

    两种方法解决javascript url post 特殊字符转义 + & #

    本文主要介绍在JavaScript中遇到的URL传递数据时,如何处理特殊字符的转义问题。 在进行URL传值的时候,数据丢失实际上并非真正的丢失,而是由于特殊字符在URL中有特殊的意义,被浏览器解释为URL的一部分。例如,...

    JavaScript中字符串的常用操作方法及特殊字符

    在本篇文档中,我们将详细探讨JavaScript中字符串的常用操作方法以及如何插入和使用特殊字符。 首先,我们来看看JavaScript中字符串的常用操作方法。这些方法是实现字符串操作的基础,它们让开发者可以轻松地对字符...

    JavaScript中的字符串操作 .txt

    字符串也可以包含特殊字符,如换行符(`\n`)、制表符(`\t`)等。 #### 常见字符串操作 1. **字符串连接**:可以通过加号(`+`)来连接两个或多个字符串。例如: ```javascript var str1 = "Hello"; var str2 ...

Global site tag (gtag.js) - Google Analytics