美文网首页
HTML特殊字符转义

HTML特殊字符转义

作者: 西召 | 来源:发表于2019-02-18 22:07 被阅读23次

    title: HTML特殊字符转义

    date: 2019-02-18 21:57:00

    categories:

    • tech
    • language
    • HTML

    tags: [tech,HTML,SpecialCharacters,Java,JavaScript]


    问题

    如果HTML的DOM元素的属性值中含有特殊字符,会造成属性值取值错误。

    例如:

    <input type="button" value=" "name":"Tom" " id="test"/>   
    

    上面input的value属性值含有双引号,会造成最后解析到的value是空格。

    解决方案

    解决的办法就是对数据进行转义,转义成HTML特殊符号的转义字符。

    常用的HTML特殊字符转义对照表:

    字符 十进制 转义字符
    " &#34; &quot;
    & &#38; &amp;
    < &#60; &lt;
    > &#62; &gt;
    不断开空格(non-breaking space) &#160; &nbsp;

    实现

    通过Java转义:

    org.apache.commons.lang3.StringEscapeUtils.escapeHtml4(com.alibaba.dubbo.common.json.Json.json(obj));
    

    通过Js转义:

    <span style="font-size:18px;"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">  
    <HTML>  
    <HEAD>  
     <TITLE>test</TITLE>  
    </HEAD>  
      
    <body>  
    
    <input type="button" value="" id="test"/>   
    
     <SCRIPT LANGUAGE="JavaScript">  
        function htmlEscape(text){ 
              return text.replace(/[<>"&]/g, function(match, pos, originalText){
                switch(match){
                case "<": return "&lt;"; 
                case ">":return "&gt;";
                case "&":return "&amp;"; 
                case "\"":return "&quot;"; 
              } 
            }); 
        }
        var h=document.getElementsByTagName("input")[0];
    
        h.value=htmlEscape("[{\"name\":\"A Girl\'s Guide\"}]");
     </SCRIPT>  
     
    </body>  
    </HTML>
    

    这样,就可以在HTML的标签中合法地使用特殊字符了。

    当然,对于其他要求严格的格式(如XML,JSON,URL等),遇到特殊字符,也是通过转义实现的,小伙伴们可以自己尝试一下。


    links:

    author: ijiangtao.net


    相关文章

      网友评论

          本文标题:HTML特殊字符转义

          本文链接:https://www.haomeiwen.com/subject/wqftyqtx.html