【问题标题】:javascript alt/fancy text generation [closed]javascript alt/花式文本生成[关闭]
【发布时间】:2019-07-10 04:15:03
【问题描述】:

我正在尝试了解替代文本/花式文本生成的工作原理。

当我说替代文字/花式文字时,我的意思是:文字喜欢:???????????????????????????? ????????????????(Source)

我已经搜索了 40 分钟,但找不到任何关于此的内容。我正在尝试用 JavaScript 做一些东西,但我什至不知道如何开始,因为我不明白它是如何生成的。

我想制作一个网站,让您可以将普通的 ASCII 字符转换为酷/花哨的文本。这样做,使用 JavaScript 文本生成这些很酷/花哨的文本。

  1. 用户在输入框中输入example text,因为他们正在输入...

  2. 使用 JavaScript 将其实时转换为 ???????????????????????????? ????????????????

所以只要用户输入e,它就会开始转换e

我正在尝试制作我自己的 coolsymbol 版本

【问题讨论】:

  • 你想做什么,你能更精确一点吗?
  • @jo_va 编辑了我的帖子

标签: javascript unicode ascii


【解决方案1】:

这些特殊字符实际上每个都由 两个 代码点组成: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>

【讨论】:

  • 我有几个问题。 1. 当您说代码点时,您的意思是像十进制值吗?就像我知道的那样,如果你将 32 添加到 A 的十进制值,你会得到小写的“a”。是不是类似的东西? 2. 你是如何确定有 2 个代码点的?而不是 3 或 4 个代码点?我在这方面完全是个菜鸟。另外我认为你的 javascript 运行不正常。
  • 查看第一个 sn-p 以了解我所做的示例 - 我注意到 '?'.length === 2 然后检查了不同可能字符的代码点。我看到第一个代码点始终相同(55349),第二个点与字符的索引直接相关(0 代表 a,25 代表 z)。因此,只需获取 normal a-z 字符的索引并将其添加到 ? 的第二个代码点,您就有了一个工作脚本。
  • sn-p 对我来说很好用。只需在输入中输入文本并对其进行模糊处理,您就会在输出中看到结果。
  • 如果不想关心字符的实际值,可以使用codePointAtfromCodePoint代替charCodeAtfromCharCode i>:const index = char.codePointAt() - 'a'.codePointAt(); return String.fromCodePoint('?'.codePointAt() + index);
  • 请注意,对于大写字母,其中一些不符合类似的模式,例如。大写 C 不是'?',而是'ℂ' (U+2102)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-17
  • 1970-01-01
  • 2016-04-24
  • 1970-01-01
  • 2018-02-01
  • 2010-10-12
  • 2018-09-01
相关资源
最近更新 更多