简体   繁体   English

Javascript将文本转换为粗体unicode字符集

[英]Javascript Convert text to bold unicode charset

I would to convert text to unicode bold format.我想将文本转换为 unicode 粗体格式。

I found我发现

  • [U+1D5D4 - U+1D5ED] as BOLD CAPITAL [A - Z] [U+1D5D4 - U+1D5ED] 作为粗体 [A - Z]
  • [U+1D5EE - U+1D607] as BOLD CAPITAL [a - z] [U+1D5EE - U+1D607] 作为粗体 [a - z]

How can I convert text to BOLD CAPITAL with unicode?如何使用 unicode 将文本转换为 BOLD CAPITAL?

Thanks谢谢

Here is a quick code snippet which does what you are asking for:这是一个快速代码片段,可以满足您的要求:

 let text = "This is a text: ABC"; function translate (char) { let diff; if (/[AZ]/.test (char)) { diff = "𝗔".codePointAt (0) - "A".codePointAt (0); } else { diff = "𝗮".codePointAt (0) - "a".codePointAt (0); } return String.fromCodePoint (char.codePointAt (0) + diff); } let newText = text.replace (/[A-Za-z]/g, translate); console.log (text); console.log (newText); // -> "𝗧𝗵𝗶𝘀 𝗶𝘀 𝗮 𝘁𝗲𝘅𝘁: 𝗔𝗕𝗖"

References:参考:

A regex-free answer inspired by @Albert Stein solution:@Albert Stein解决方案启发的无正则表达式答案:

 const upperDiff = "𝗔".codePointAt(0) - "A".codePointAt(0); const lowerDiff = "𝗮".codePointAt(0) - "a".codePointAt(0); const isUpper = (n) => n >= 65 && n < 91; const isLower = (n) => n >= 97 && n < 123; const bolderize = (char) => { const n = char.charCodeAt(0); if (isUpper(n)) return String.fromCodePoint(n + upperDiff); if (isLower(n)) return String.fromCodePoint(n + lowerDiff); return char; }; const bolderizeWord = (word) => [...word].map(bolderize).join(""); console.log("a" + bolderize("a")) console.log(bolderizeWord("Bold") + " move")

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM