[TOC]

二、字符实体

1. ASCII 部分实体字符列表

字符		实体名称	  实体编号
 	     		 	// 空格
<	    &lt;		&#60;	// 小于号
>	    &gt;		&#62;	// 大于号	
&	    &amp;		&#38;	// 和号
!	    &excl;		&#33;
"	    &quot;		&#34;
#	    &num;		&#35;
$	    &dollar;	&#36;
%	    &percnt;	&#37;
'	    &apos;		&#39;
(	    &lpar;		&#40;
)	    &rpar;		&#41;
*	    &ast;		&#42;
+	    &plus;		&#43;
,	    &comma; 	&#44;
-	    &hyphen; 	&#45;
.	    &period;	&#46;
/	    &sol; 		&#47;
:	    &colon;		&#58;
;	    &semi;		&#59;
=	    &equals;	&#61;
?	    &quest;		&#63;
@	    &commat; 	&#64;
[	    &lsqb; 		&#91;
\	    &bsol; 		&#92;
]	    &rsqb;		&#93;
^	    &circ;		&#94;
_	    &lowbar;	&#95;
`	    &grave;		&#96;
{	    &lcub;		&#123;
|	    &verbar;	&#124;
}	    &rcub;		&#125;
~	    &tilde;		&#126;

更多参考:https://www.freeformatter.com/html-entities.html#ascii-characters

2. HTML Entity介绍

在HTML中有的字符是预留的,比如小于号(<)和大于号(>),如果直接写,浏览器会把他们当成标签,如果想要正确的显示预留字符,就必须要在HTML的源代码中使用字符实体(character entities)。

字符实体类似于这样:

&entity_name;
或者
&#entity_number;
<p>字符 :<</p>
<p>Entity Name :&lt;</p>
<p>Entity Number(十进制) :&#60;</p>
<p>Entity Number(十六进制) :&#x3c;</p>

2.1 Entity Name 实体名称

格式&entityName;

说明:"&"开头,";"结尾,以语义的形式描述字符。如字符"<",英文名称为"less than",Entity Name为"<",取自"less than"2个单词的首字母。

2.2 Entity Number 实体编号

格式&#entityNumber;

说明:"&#"开头,";"结尾,以编号的形式描述字符。此编号可以为十进制或十六进制(以"&#x"开头)等数字格式。

3. 字符与实体编号互转

3.1 字符转实体编号

String的实例方法 charCodeAt() 可把指定字符转换为编码:

var charCode = '<'.charCodeAt(0); 			// => 40
var entityNumber = '&#' + charCode + ';'; 	// => (

3.2 实体编号转字符

String的静态方法 fromCharCode() 可把指定编码转换为字符,而Entity Number的编码可以为十进制或16进制,所以转换时进行分别处理:

var getChar = function(entityNumber) {
    var num = entityNumber.replace('&#', '').replace(';', '');
    if (num.indexOf('x') == 0 || num.indexOf('X') == 0) {
        num = Number.parseInt(num, 16); // 16进制转换为10进制
    } else {
        num = Number.parseInt(num); 	// 10进制
    }
    var char = String.fromCharCode(num);
    return char;
}

// e.g.
var oldStr = '&#40;中文&#41;';
var newStr = oldStr.replace(/(&#\d+;)/g, function(matched) {
    return getChar(matched);
});
console.log(newStr); // => (中文)

参考资料

HTML Entity 字符实体(字符转义)

更多字符实体

HTML 字符实体 W3C

Last Updated: 8/20/2019, 11:47:12 PM