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];

        });

    }

 

 

小结:

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

 

你可能感兴趣的:(html)