zoukankan      html  css  js  c++  java
  • html实体转换

    摘要:

      在 HTML 中,某些字符是预留的。在 HTML 中不能使用小于号(<)和大于号(>),这是因为浏览器会误认为它们是标签。如果希望正确地显示预留字符,我们必须在 HTML 源代码中使用字符实体。如需显示小于号,我们必须这样写:&lt; 或 &#60;

      HTML 中的常用字符实体是不间断空格(&nbsp;)。浏览器总是会截短 HTML 页面中的空格。如果您在文本中写 10 个空格,在显示该页面之前,浏览器会删除它们中的 9 个。如需在页面中增加空格的数量,您需要使用 &nbsp; 字符实体。

    实体列表:

      下面列出了常用的实体对照表

    显示结果描述实体名称实体编号
      空格 &nbsp; &#160;
    < 小于号 &lt; &#60;
    > 大于号 &gt; &#62;
    & 和号 &amp; &#38;
    " 引号 &quot; &#34;
    &cent; &#162;
    £ &pound; &#163;
    ¥ 日圆 &yen; &#165;
    欧元 &euro; &#8364;
    § 小节 &sect; &#167;
    © 版权 &copy; &#169;
    ® 注册商标 &reg; &#174;
    商标 &trade; &#8482;
    × 乘号 &times; &#215;
    ÷ 除号 &divide; &#247;

    实体转换:

      有时候我们需要在js里处理DOM,但是实体只有当浏览器渲染页面时才会转换对应的字符。所以我们就得自己写一个实体转换函数。如下:

    function unescapeEntity(str) {
            var reg = /&(?:nbsp|#160|lt|#60|gt|62|amp|#38|quot|#34|cent|#162|pound|#163|yen|#165|euro|#8364|sect|#167|copy|#169|reg|#174|trade|#8482|times|#215|divide|#247);/g,
                entity = {
                '&nbsp;'   : ' ',
                '&#160;'   : ' ',
                '&lt;'     : '<',
                '&#60;'    : '<',
                '&gt;'     : '>',
                '&62;'     : '>',
                '&amp;'    : '&',
                '&#38;'    : '&',
                '&quot;'   : '"',
                '&#34;'    : '"',
                '&cent;'   : '¢',
                '&#162;'   : '¢',
                '&pound;'  : '£',
                '&#163;'   : '£',
                '&yen;'    : '¥',
                '&#165;'   : '¥',
                '&euro;'   : '€',
                '&#8364;'  : '€',
                '&sect;'   : '§',
                '&#167;'   : '§',
                '&copy;'   : '©',
                '&#169;'   : '©',
                '&reg;'    : '®',
                '&#174;'   : '®',
                '&trade;'  : '™',
                '&#8482;'  : '™',
                '&times;'  : '×',
                '&#215;'   : '×',
                '&divide;' : '÷',
                '&#247;'   : '÷'
            };
            if (str === null) {
                return '';
            }
            str = str.toString();
            return str.indexOf(';') < 0 ? str : str.replace(reg, function(chars) {
                return entity[chars];
            });
        }

    小结:

      使用实体名而不是数字的好处是,名称易于记忆。不过坏处是,浏览器也许并不支持所有实体名称(对实体数字的支持却很好)。

  • 相关阅读:
    android通过Canvas和Paint截取无锯齿圆形图片
    【转】mysql的cardinality异常,导致索引不可用
    mysql索引无效且sending data耗时巨大原因分析
    linux shell脚本通过参数名传递参数值
    git日志输出格式及两个版本之间差异列表
    jenkins结合ansible用shell实现自动化部署和回滚
    Linux下cp -rf总是提示覆盖的解决办法
    jenkins集成ansible注意事项Failed to connect to the host via ssh.
    ansible操作远程服务器报Error: ansible requires the stdlib json or simplejson module, neither was found!
    利用ssh-copy-id无需密码登录远程服务器
  • 原文地址:https://www.cnblogs.com/xiyangbaixue/p/4212706.html
Copyright © 2011-2022 走看看