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中的特殊字符转换及其重要性。 1. **特殊字符转义** HTML中,如果要显示特殊字符本身而不是其功能,可以使用HTML实体(HTML Entities)。例如,小于号 `转义为 `<`,大于号 `>` 转义为 `>...
为了避免这些字符被浏览器解析为HTML语法,我们需要对它们进行特殊字符转换。这就是"HTML特殊字符转换"这一主题的核心内容。 当我们直接在HTML文档中插入这些特殊字符时,浏览器可能会误解我们的意图。例如,如果...
"前台JavaScript转换特殊字符"这个主题涉及到的是如何在JavaScript中处理和转换文本中的特殊字符,以确保数据的正确显示和处理。在网页开发中,经常遇到需要对用户输入进行清理或者格式化的情况,比如防止XSS(跨站...
然而,正是因为这种直接写入,使得特殊字符未经转义就可能引发问题。 1. **HTML转义**: - 当响应体中包含HTML代码时,如果不做处理,浏览器会尝试解析这些代码,可能导致XSS(跨站脚本攻击)。为防止这种情况,...
本篇文章将深入探讨JSON中的特殊字符串转换,以及如何正确处理它们。 一、JSON特殊字符与转义 在JSON中,字符串必须用双引号(")括起来。如果字符串内部需要包含双引号,或者其他特殊字符如反斜杠(\)、换行符...
例如,在Python中,可以使用`xml.sax.saxutils.escape()`函数来编码特殊字符,而在JavaScript中,可以使用`encodeURI()`或`encodeURIComponent()`函数。同样,接收XML数据后,可以通过解码函数还原这些字符。 **3. ...
1. **`htmlspecialchars()`**:用于将特殊字符转换为对应的HTML实体,从而避免被解析为HTML标签或脚本。 - 示例代码: ```php $str = "<script>alert('XSS');</script>"; $safeStr = htmlspecialchars($str, ENT...
此外,文档还提到`escapeJavascript`函数,这个函数用于在字符串中转义JavaScript的特殊字符,比如单引号(`'`)和双引号(`"`)。在JavaScript中,单引号和双引号用于字符串的界定,如果不进行转义,字符串内部包含同样...
网上有一个通用的转码组件,不仅可以转换javascript的,还可以转换html,xml等的特殊字符,许多帖子都转载了它。但是我对它进行了测试,发现有很多错误,或者是函数过期,或者是替换字符串写错,还有对javascript的...
在JavaScript(以下简称JS)开发过程中,经常会遇到需要处理文本字符串中的特殊字符的情况。这些特殊字符可能包括但不限于:`~!@#$%^&*()=|{}':;',[]<>/?~@#&*—|{}"等。对于这些特殊字符的处理,通常涉及到字符串的...
这种编码机制是将特殊字符转换为`%`符号后跟字符ASCII码的十六进制表示形式。例如,空格字符在URL中不能直接出现,因此需要编码为`%20`。这种编码方式称为百分号编码(Percent-encoding)。 在JavaScript中,我们...
这将会把特殊字符转换为相应的HTML实体。 除了这些基础的字符实体,还有一些特殊的字符实体在JavaScript编程中特别有用,比如`<`和`>`用于表示小于号和大于号,避免在字符串中与HTML标签混淆;`&`用于...
主要原理是将特殊字符转换为其对应的百分号编码(也称为百分比编码)。例如,“#”会被编码为“%23”,“&”会被编码为“%26”。 #### 3. 不同语言中的URL编码方法 - **JavaScript中的URL编码** - `escape()`:该...
"che"是一个工具,它的作用就是将特殊字符转换为对应的HTML实体,这样在网页显示时可以正确无误地呈现。 "che"这个工具的名称可能是"Char to HTML Entity"的缩写,它专门用于处理字符串中的特殊字符。根据提供的...
你可以在JavaScript中使用反斜杠来向文本字符串添加特殊字符。 插入特殊字符 反斜杠用来在文本字符串中插入省略号、换行符、引号和其他特殊字符。 请看下面的JavaScript代码:var txt=”We are the so-called ...
在 JavaScript 中,可以使用 replace() 方法来处理特殊字符的编码。例如: data2=data2.replace(/\%/g,"%25"); data2=data2.replace(/\#/g,"%23"); data2=data2.replace(/\&/g,"%26"); 在使用 URL 进行参数传递时...
- 在字符串中,某些特殊字符需要使用转义字符来表示,如`\n`(换行)、`\t`(制表符)等。 - 示例:`var example = "This is a \ntest string.";` #### 字符串属性与方法 1. **`length`属性**: - `length`属性返回...
本文主要介绍在JavaScript中遇到的URL传递数据时,如何处理特殊字符的转义问题。 在进行URL传值的时候,数据丢失实际上并非真正的丢失,而是由于特殊字符在URL中有特殊的意义,被浏览器解释为URL的一部分。例如,...
在本篇文档中,我们将详细探讨JavaScript中字符串的常用操作方法以及如何插入和使用特殊字符。 首先,我们来看看JavaScript中字符串的常用操作方法。这些方法是实现字符串操作的基础,它们让开发者可以轻松地对字符...
字符串也可以包含特殊字符,如换行符(`\n`)、制表符(`\t`)等。 #### 常见字符串操作 1. **字符串连接**:可以通过加号(`+`)来连接两个或多个字符串。例如: ```javascript var str1 = "Hello"; var str2 ...