psy*_*ave 0 javascript unicode
我想在javascript确认弹出窗口中加粗一些字符。由于您不能在那里使用html / css,并用专用的unicode字符扩展了下划线的解决方案,因此我认为我可以简单地用加粗的unicode对应字符替换每个数字,并且它们的长度为5位数(范围从1D7CE到,1D7D7),则附带以下代码:
function bold(number) {
return number.
replace(/0/, String.fromCharCode(0x1D7CE)).
replace(/1/, String.fromCharCode(0x1D7CF)).
replace(/2/, String.fromCharCode(0x1D7D0)).
replace(/3/, String.fromCharCode(0x1D7D1)).
replace(/4/, String.fromCharCode(0x1D7D2)).
replace(/5/, String.fromCharCode(0x1D7D3)).
replace(/6/, String.fromCharCode(0x1D7D4)).
replace(/7/, String.fromCharCode(0x1D7D5)).
replace(/8/, String.fromCharCode(0x1D7D6)).
replace(/9/, String.fromCharCode(0x1D7D7));
}
Run Code Online (Sandbox Code Playgroud)
但是我必须误会一些东西,例如1
用?
(D7CE)代替。
什么是可行的解决方案?
试试这个简化的实现:
function bold(number) {
return number.replace(/\d/g, (c) => String.fromCodePoint(0x1D79E + c.charCodeAt(0)));
}
console.log(bold('abc 0123456789 def'));
Run Code Online (Sandbox Code Playgroud)
不同于String.fromCodePoint()
,它使用支持全部unicode 。String.fromCharCode()
这种简化利用了以下事实:数字和粗体数字都占据了10个unicode点的连续运行,相隔距离为0x1D79E
。