自从ES5以来,您可以使用
String.fromCodePoint(number)
获取大于0xFFFF的Unicode值。
因此,在每个新的浏览器中,您可以这样编写:
var input = '2122';
console.log(String.fromCodePoint(input));
或者它是一个十六进制数:
var input = '2122';
console.log(String.fromCodePoint(parseInt(input, 16)));
更多信息:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/fromCodePoint
编辑(2021):
fromCodePoint 不仅用于更大的数字,还可用于组合 Unicode 表情符号。
例如,要绘制一个挥手的手,您需要编写:
String.fromCodePoint(0x1F44B);
但是如果你想要一个带有肤色的挥手,你需要进行组合:
String.fromCodePoint(0x1F44B, 0x1F3FC);
将来(或从现在开始),您甚至可以结合两个表情符号创建一个新的表情符号,例如将心形和火焰组合在一起,创建一个燃烧的心形:
String.fromCodePoint(0x2764, 0xFE0F, 0x200D, 0x1F525);
32-bit number:
<script>
document.write(String.fromCodePoint(0x1F44B));
</script>
<br>
32-bit number + skin:
<script>
document.write(String.fromCodePoint(0x1F44B, 0x1F3FE));
</script>
<br>
32-bit number + another emoji:
<script>
document.write(String.fromCodePoint(0x2764, 0xFE0F, 0x200D, 0x1F525));
</script>
fromCharCode()
,但是它仍然不能将2122
转换成商标符号。 - HarmenparseInt(input, 16)
看起来可以完成任务 ;) - HarmenparseInt
而不是fromCharCode
。 - pimvdb