Hri*_*sto 17 html javascript unicode jquery hex
说我有这样的元素......
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mo class="symbol">?</mo>
</math>
Run Code Online (Sandbox Code Playgroud)
有没有办法让阿尔法的Unicode /十六进制值?,α使用的JavaScript/jQuery的?就像是...
$('.symbol').text().unicode(); // I know unicode() doesn't exist
$('.symbol').text().hex(); // I know hex() doesn't exist
Run Code Online (Sandbox Code Playgroud)
我需要α代替,?而且似乎任何时候我插入㬝OM并尝试立即检索它,它会被渲染,我无法α回来; 我得到了α.
aro*_*oth 23
使用大多数纯JavaScript,您应该能够:
function entityForSymbolInContainer(selector) {
var code = $(selector).text().charCodeAt(0);
var codeHex = code.toString(16).toUpperCase();
while (codeHex.length < 4) {
codeHex = "0" + codeHex;
}
return "&#x" + codeHex + ";";
}
Run Code Online (Sandbox Code Playgroud)
这是一个例子:http: //jsfiddle.net/btWur/
Jim*_*lle 14
charCodeAt 会得到字符串的十进制值:
"?".charCodeAt(0); //returns 945
0x03b1 === 945; //returns true
Run Code Online (Sandbox Code Playgroud)
toString 然后将获得十六进制字符串
(945).toString(16); // returns "3b1"
Run Code Online (Sandbox Code Playgroud)
(确认在IE9和Chrome中工作)
Mat*_*ius 10
如果您试图通过上述方式将BMP(基本多语言平面)中的Unicode字符转换出来- 那么您将面临令人讨厌的惊喜.BMP中的字符编码为多个UTF16值,例如:
"".length = 2(一部分用于卸扣一部分用于锁定底座:))
所以"".charCodeAt(0)会给你55357哪一个只是数字的"一半",而"".charCodeAt(1)给你的56594是另一半.
要获取这些值的char代码,您可能需要使用以下字符串扩展功能
String.prototype.charCodeUTF32 = function(){
return ((((this.charCodeAt(0)-0xD800)*0x400) + (this.charCodeAt(1)-0xDC00) + 0x10000));
};
Run Code Online (Sandbox Code Playgroud)
你也可以像这样使用它
"&#x"+("".charCodeUTF32()).toString(16)+";"
Run Code Online (Sandbox Code Playgroud)
获取html十六进制代码.
希望这能为您节省一些时间.
| 归档时间: |
|
| 查看次数: |
20735 次 |
| 最近记录: |