我正在尝试了解替代文本/花式文本生成的工作原理。
当我说替代文本/花式文本时,我的意思是:文本如下:𝕖𝕩𝕒𝕞𝕡𝕝𝕖 𝕥𝕖𝕩𝕥
(Source)
我已经搜索了 40 分钟,但我找不到关于此的任何内容。我正在尝试用 JavaScript 制作一些东西,但我什至不知道如何开始,因为我不明白它是如何生成的。
我想制作一个网站,允许您将普通的 ASCII 字符转换为炫酷/精美的文本。这样做,使用 JavaScript 文本生成这些很酷/花哨的文本。
用户在输入框中输入示例文本
,因为他们正在输入...
它使用 JavaScript 将其实时转换为 𝕖𝕩𝕒𝕞𝕡𝕝𝕖 𝕥𝕖𝕩𝕥
因此,一旦用户键入 e
,它就会开始将其转换为 e
。
我正在尝试制作我自己的 coolsymbol 版本
这些特殊字符实际上分别由两个码位组成:55349
和其他56658
及以上(第二个码位各不相同对于每个字符)。
const str = '𝕒';
console.log(str.charCodeAt(0), str.charCodeAt(1));
您可以使用正则表达式将输入中的每个字符替换为由 55349
代码点以及与相关字符相关的代码点组成的字符串:
const input = document.querySelector('#input');
const output = document.querySelector('#output');
input.addEventListener('blur', () => {
output.textContent = input.value.replace(/[a-z]/g, (char) => {
// make code indexed from 0 to 25, corresponding to a to z:
const code = char.charCodeAt() - 97;
// add the above to 56658, since 56658 represents 𝕒:
return String.fromCharCode(55349, code + 56658);
});
});
<input id="input" value="example text">
<div id="output"></div>