JavaScript中是否有任何函数可以让我从HTML实体(名称)转换为数字,十六进制甚至ISO斜杠字符(在CSS中使用)?
,例如,
¢
。¢
,可在HTML标记中使用
井%A2
\00a2
- 我可以直接在CSS content
属性中使用。如下所示:
.cents:after {
font-style: italic;
content: "\00a2";
}
因此,我对ISO值更感兴趣。
答案 0 :(得分:1)
分号符号(¢)HTML为:¢
。
//will need to work against a list of all items or the char code set you will need
其数值为¢
,也可用于HTML标记
'&#' + '¢'.charCodeAt(0);
十六进制值为%A2
escape('¢');
ISO是\00a2
- 我可以直接在CSS内容属性中使用。
var iso = ['\\', '0', '0', '0', '0'];
var hex = '¢'.charCodeAt(0).toString(16).split('');
for(var i=4; i >= 0 && hex.length > 0 ; i--){
iso[i] = hex.pop();
}
iso.join('')
答案 1 :(得分:1)
HTML实体是用HTML定义的,而不是JavaScript。要在JavaScript中使用实体名称,您需要使JavaScript解释器将数据解析为HTML。实现此目的的一种简单方法是将数据分配给元素的innerHTML
属性。因此,从实体名称开始,通过在其前面添加&
并在其后面添加;
来构造HTML实体引用,分配它,然后处理(已解析的)值,即字符。您可以使用charCodeAt()
将字符转换为其Unicode编号,然后使用toString()
以16为参数以十六进制编号:
var ent = 'cent'; // just an example; "ent" contains the entity name
var elem = document.createElement('span');
elem.innerHTML = '&' + ent + ';';
var ref = '\\' + elem.innerHTML.charCodeAt(0).toString(16);
// now ref contains a string like \a2 (you may need to add zeros or append a
// space if you write this into CSS
但是,我不明白这里有什么意义。您可以只使用HTML,JavaScript和CSS中的字符本身,只要您正确处理字符编码问题,无论如何都应如此。