`
fjguodong
  • 浏览: 39864 次
社区版块
存档分类
最新评论

html和javascript中的特殊字符问题

 
阅读更多

在html中有几个特殊的字符: < > ' " &

在处理javascript字符串内容的时候也有两个特殊的字符:‘ “

 

    我们知道,在把内容用于html画面表示的时候,要表示的内容中要对以上的字符进行特殊的处理:即要进行字符创的转义。转义的方式如下表所示:

结果 描述 实体名称 实体编号
" quotation mark &quot; &#34;
' apostrophe  &apos; &#39;
& ampersand &amp; &#38;
< less-than &lt; &#60;
> greater-than &gt; &#62;

 

如果字符串中有”结果”列中对应的字符,则需要转成与“实体名称”列或“实体编号”列中对应的字符串,这样这些字符才能在画面中正常表示出来否则会显示异常。

 

    在javascript中也有类似的问题,主要就是要对javascript字符串内容中的 ’ 和 “ 进行特殊的处理。举例如下所示:

 

// 错误的方式
alert("this is test "message"!");  
alert('this is test 'message'!');  

// 正确的方式
alert("this is test /"message/"!");  
//或者  
alert("this is test 'message'!");  
  
alert('this is test /'message/'!');  

 

 

我想对于简单的字符串组合方式(包含以上特殊字符串),上面的方式都比较容易掌握,但是对于由服务器端复杂地、组合地、嵌套地输出上面特殊的字符串的时候,可能会遇到麻烦。而且浏览器对于特殊字符串的解析存在差异,这是上述的转换得到的效果,我们就无法把握。例如下面的情况:

 

 

<script>
function myClick(param){
    alert(param);
}
// 调用1
myclick('1212&#39;1212');
</script>

<body>
<!-- // 调用2 -->
<input type="button" value="click me" onclick="myclick('1212&#39;1212')" />
</body>

上述两个地方调用同一个方法的时候,就存在差异,“调用1”可以成功,但是“调用2”就不能执行了,这就是浏览器对于相同的转义字符处理上的差异性。我们可以对内容 1212'1212 采用不同的转化处理,在html表示的时候可以转化为 1212&#39;1212 ,用于javascript中的时候可以转化为'1212\'1212。这样处理问题是可以解决,但是如果是要把同一个java变量中的字符串用于html表示和javascript变量,上述的方式未免太麻烦了。

 

    对于这个麻烦的问题,可以采用另外一种转化方式进行处理,就能避免浏览器对于html和javascript解析时的差异性。如下所示:

 

<script>
function myClick(param){
    alert(param);
}
// 调用1
myclick('1212/u00271212');
myclick("1212/u00221212");
</script>

<body>
<!-- // 调用2 -->
<input type="button" value="click me" onclick="myclick('1212/u00271212')" />
<input type="button" value="click me" onclick='myclick("1212/u00221212")' />
</body>

 

常用的可以转化的字符:

字符说明 Unicode 转义序列 

'                        /u0027
"                       /u0022
长破折号 (—)    /u2014 
注册符号 (R)     /u00AE 
版权符号 (c)      /u00A9 
商标符号 (?)      /u2122 
欧元符号 (€)      /u20AC 
反斜杠 (/)          /u005C 
正斜杠 (/)          /u002F 
左大括号 ({)      /u007B 
右大括号 (})      /u007D 
小于号 (<)         /u003C 
大于号 (>)         /u003E 
星号 (*)            /u002A 

 

 

分享到:
评论

相关推荐

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

    我们经常会遇到一个问题:当使用Spring MVC的`@ResponseBody`注解将后端处理结果直接转化为HTTP响应体时,如果这个结果中包含HTML特殊字符,如尖角号、引号、按位与符号等,浏览器可能会误解析,导致安全问题或显示...

    前台Javascript转换特殊字符

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

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

    JavaScript中也存在特殊字符,例如引号和反斜杠,需要正确处理以避免语法错误。 1. **字符串转义**:JavaScript字符串支持转义字符,如`\n`(换行)、`\t`(制表符)等。 - 示例代码: ```javascript var str = ...

    HTML特殊字符转换

    这些实体的应用不仅限于文本内容,还可以在属性值、JavaScript代码和CSS样式中使用,确保这些特殊字符不会被误解析。 在实际开发中,我们常常会遇到需要批量转换的情况。这时,可以借助一些工具,比如在线的HTML...

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

    这篇压缩包中的“特殊的HTML字符.htm”文件很可能是关于这些特殊字符的详细列表和它们在JavaScript中的应用。HTML字符实体是预定义的字符串,用于表示无法直接在HTML文档中使用的字符,如版权符号(©)、注册商标...

    JS 过滤特殊字符

    本文将深入探讨如何在JavaScript中进行特殊字符过滤,并提供相关工具和源码的使用方法。 一、为什么要过滤特殊字符? 1. 防止SQL注入:特殊字符如单引号(')、双引号(")、分号(;)等在SQL语句中具有特定含义,如果不...

    关于前端开发的特殊符号

    总之,前端开发中的特殊符号使用是一个实用且多样化的主题,开发者需要熟悉Unicode字符集,理解HTML实体引用、CSS和JavaScript中的转义规则,并关注跨浏览器和跨平台的兼容性问题,以确保内容在各种环境下都能正确...

    常用HTML转义字符,html转义符,JavaScript转义符,html转义字符表,HTML语言特殊字符对照表(ISO Latin-1字符集) - 来源:嘻嘻网 114_xixik_com_files

    在JavaScript中,反斜杠(\)用于转义特殊字符,例如"\n"表示换行,"\t"表示制表符,"\\"表示反斜杠本身,而"\'"和'\"'分别用来转义单引号和双引号。JavaScript中还有一类特殊的转义序列,如"\u0026"用于表示ASCII码...

    html中的特殊字符转换

    总结,HTML中的特殊字符转换是确保网页内容正确显示和安全的重要手段。理解并熟练运用这些转义规则,有助于创建符合标准且安全的HTML页面。在实际开发过程中,合理利用各种编程语言提供的函数和工具,能够提高效率,...

    HTML特殊字符编码大全

    - 不要在JavaScript字符串中直接使用特殊字符编码,应使用其对应的Unicode转义序列,如`\u00A9`表示版权符号。 综上所述,理解并熟练掌握HTML特殊字符编码对于编写高质量、兼容性强的HTML文档至关重要。通过正确的...

    javascript 特殊字符串

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

    xss特殊字符拦截与过滤

    标题《xss特殊字符拦截与过滤》以及描述《滤除content中的危险HTML代码,主要是脚本代码,滚动字幕代码以及脚本事件处理代码》提示我们这个文件内容是关于XSS(跨站脚本攻击)防护的编程实现。XSS攻击是指攻击者通过...

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

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

    JavaScript中文转拼音

    2. **JavaScript字符串处理**:JavaScript的字符串对象提供了许多方法,如`length`、`charAt`和`slice`等,用于处理字符串。但它们在面对中文字符时,一个字符可能由多个Unicode码位组成,因此需要注意多字节字符的...

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

    通过学习这个资源,开发者可以提升JavaScript的实践能力,特别是在动态生成特殊字符和增强网页视觉效果方面的技巧。同时,了解如何结合DOM和事件处理,可以进一步提高Web开发的灵活性和用户体验。无论你是初学者还是...

    JavaScript【注释与特殊字符】

    1_03:注释与特殊字符 http://download.csdn.net/source/2792675 1_04:格式标签 http://download.csdn.net/source/2796769 1_05:文本标签 1_06:超链接标签 1_07:图像标签 1_08:客户端图像地图 欢迎下载学习...

    【JavaScript源代码】基于网址URL中特殊字符转义编码.docx

    【JavaScript源代码】基于网址URL中特殊字符转义编码是一个重要的概念,特别是在Web开发中,因为URL是连接互联网资源的基本途径。URL编码是确保数据在URL中正确传递的关键步骤,尤其是当URL包含特殊字符或者非ASCII...

    javascript加解密字符串

    - **JavaScript编码**:可能包含使用JavaScript内置的`encodeURI()`、`encodeURIComponent()`、`escape()`等函数进行编码的示例,这些函数常用于处理URL或特殊字符。 - **Unicode与ASCII**:JavaScript中的字符串...

    JS特殊字符处理

    7. **安全问题**:在输入输出处理中,防止XSS(Cross-Site Scripting)攻击也是处理特殊字符的重要一环。例如,用户提交的数据可能包含HTML标签和JavaScript代码,我们需要使用`innerText`而非`innerHTML`,或使用`...

Global site tag (gtag.js) - Google Analytics