我试图了解替代文本/精美文本生成的工作原理。
当我说替代文字/花哨文字时,是指:In [2]: class A:
...: def __init_subclass__(cls, **kwd):
...: super().__init_subclass__(cls)
...:
In [3]: class B(A, test=None):
...: pass
...:
(Source)
我已经搜索了40分钟,但是我找不到任何东西。我正在尝试用JavaScript制作东西,但我什至不知道如何开始,因为我不了解它是如何生成的。
我想制作一个网站,使您可以将正常的ASCII字符转换为漂亮的文本。为此,使用JavaScript文本会生成这些炫酷/精美的文本。
用户在输入框中输入A.__init_subclass__
,因为他们正在输入...
使用JavaScript将其实时转换为{"test": None}
因此,只要用户键入
,它就会开始转换example text
。
我正在尝试制作自己的coolsymbol版本
答案 0 :(得分:3)
这些特殊字符实际上每个由两个代码点组成:55349
和其他56658
及以上的代码点(第二个代码点因每个字符而异)。 / p>
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>