首页 > 代码库 > html实体转换

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实体转换