jQuery Keypad:如何制作上标字符?

Posted

技术标签:

【中文标题】jQuery Keypad:如何制作上标字符?【英文标题】:jQuery Keypad: How to make superscript characters? 【发布时间】:2014-02-14 19:49:02 【问题描述】:

我有一个朋友一直在使用 jQuery Keypad 插件。他现在需要几个字符的上标(和/或下标)。有谁知道如何在 UTF-8 中制作或查找(复制/粘贴)以下上标字符?

需要上标字符:nd th st rd [ ] ( )

nd、th、st、rd 表示第 22、7、1、3 号(但有上标)

[ ] ( ) 也是需要的。

jQuery Keypad 插件目前正在与一些额外的 BBCode 功能一起使用。

http://keith-wood.name/keypad.html

var custom_keypad_bbcode = [
'⁰|¹|²|³|⁴|⁵|⁶|⁷|⁸|⁹|¢|£|' + $.keypad.QTAT, 
'‘|’|“|”|–|—|©|®|™|¼|½|¾|' + $.keypad.ITALIC, 
'à|á|â|ã|ä|å|æ|ç|è|é|ê|ë|' + $.keypad.QUOTE, 
'ì|í|í|î|ï|ñ|ò|ó|ô|õ|ö|ø|' + $.keypad.ULINE, 
$.keypad.SHIFT + '|ð|þ|ù|ú|û|ü|ý|ÿ|' + $.keypad.CLOSE + '|' + $.keypad.BOLD, 

];

我正在考虑使用 BBCode,但我更愿意以 UTF-8 格式写出字符。我找到了以下列表,但它不包括上标“t”或“h”。

http://www.fileformat.info/info/unicode/block/superscripts_and_subscripts/list.htm

有谁知道如何在 UTF-8 中制作或查找(复制/粘贴)所需的上标字符?

【问题讨论】:

不能与 jQuery 键盘一起使用吗? @acbabis - 你必须使用 |如果要将其添加到键盘中,请使用分隔符。我设法使用 $.keypad.addKeyDef() 添加了一些 BBCode 逻辑 好的,所以你关心的只是让你的代码更干净? 没有。这与代码无关。修订后的问题:有谁知道如何在 UTF-8 中制作或查找(复制/粘贴)以下上标字符?需要上标字符: nd th st rd [ ] ( ) 【参考方案1】:

某些字符的上标和下标在 U+2070 – U+209C Unicode 范围内:

上标:0456789+-=()in

下标:0123456789+-=aeoxhklmnpst

还有:

U+2C7C处下标j

在 U+1D62–U+1D65 处下标 iruv

上标123你已经找到了

还有所谓的“语音修饰字母”(在大多数情况下看起来像上标):

abdegkmoptuv 在 U+1D43–U+1D5B

c 在 U+1D9C

f 在 U+1DA0

z 在 U+1DBB

hjrwy 在 U+02B0–U+02B8

lsx 在 U+02E1–U+02E3。

因此,假设您的字体支持所有这些字符并且修饰字母看起来类似于上标字母,那么您有以下内容:

上标:所有数字,所有小写ASCII字母,以及一些其他符号

下标:所有数字、字母aehijklmnprstuvx,以及一些其他符号

【讨论】:

我尝试使用 unicode 字符 x207F (n) 和 x1D48 (d) 创建上标“nd”,但由于字母类型不同,结果没有相同的基线。有什么建议吗? 您可以尝试寻找其他字体。也许实际上它们确实排成一列,但是您看到的两个字母实际上来自不同的字体,一个只支持一个字符,另一个支持第二个?【参考方案2】:

这是我最终在 php 中提出的。然而,“nd”的基线不在一个级别。

// Testing: Superscript characters needed: nd th st rd [ ] ( )

// nd ⁿᵈ
echo "nd: ".html_entity_decode('&#x207F;', ENT_COMPAT, 'UTF-8').html_entity_decode('&#x1D48;', ENT_COMPAT, 'UTF-8')."<br>";
// th ᵗʰ (t-x1D57) ᵗʰ (H-x2b0)
echo "th: ".html_entity_decode('&#x1D57;', ENT_COMPAT, 'UTF-8').html_entity_decode('&#x02b0;', ENT_COMPAT, 'UTF-8')."<br>";
// st ˢᵗ
echo "st: ".html_entity_decode('&#X02E2;', ENT_COMPAT, 'UTF-8').html_entity_decode('&#x1D57;', ENT_COMPAT, 'UTF-8')."<br>";
// rd ʳᵈ
echo "rd: ".html_entity_decode('&#X02B3;', ENT_COMPAT, 'UTF-8').html_entity_decode('&#x1D48;', ENT_COMPAT, 'UTF-8')."<br>";

echo "<br><br><br>";

echo "n-".html_entity_decode('&#x207F;', ENT_COMPAT, 'UTF-8');
echo "d-".html_entity_decode('&#x1D48;', ENT_COMPAT, 'UTF-8');
echo "h-".html_entity_decode('&#X02B0;', ENT_COMPAT, 'UTF-8');
echo "r-".html_entity_decode('&#X02B3;', ENT_COMPAT, 'UTF-8');
echo "s-".html_entity_decode('&#X02E2;', ENT_COMPAT, 'UTF-8');
echo "t-".html_entity_decode('&#x1D57;', ENT_COMPAT, 'UTF-8');

【讨论】:

以上是关于jQuery Keypad:如何制作上标字符?的主要内容,如果未能解决你的问题,请参考以下文章

jQuery.keypad 性能问题

jQuery Keypad / Primefaces 键盘重新映射空格键

如何在 matplotlib 中制作无衬线上标或下标文本?

绘图轴标题上的特殊字符和上标

power bi如何制作地图数据表?power bi如何在地图上标出数据啊?

如何将上标字符转换为 C# 字符串中的普通文本