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('ⁿ', ENT_COMPAT, 'UTF-8').html_entity_decode('ᵈ', ENT_COMPAT, 'UTF-8')."<br>";
// th ᵗʰ (t-x1D57) ᵗʰ (H-x2b0)
echo "th: ".html_entity_decode('ᵗ', ENT_COMPAT, 'UTF-8').html_entity_decode('ʰ', ENT_COMPAT, 'UTF-8')."<br>";
// st ˢᵗ
echo "st: ".html_entity_decode('ˢ', ENT_COMPAT, 'UTF-8').html_entity_decode('ᵗ', ENT_COMPAT, 'UTF-8')."<br>";
// rd ʳᵈ
echo "rd: ".html_entity_decode('ʳ', ENT_COMPAT, 'UTF-8').html_entity_decode('ᵈ', ENT_COMPAT, 'UTF-8')."<br>";
echo "<br><br><br>";
echo "n-".html_entity_decode('ⁿ', ENT_COMPAT, 'UTF-8');
echo "d-".html_entity_decode('ᵈ', ENT_COMPAT, 'UTF-8');
echo "h-".html_entity_decode('ʰ', ENT_COMPAT, 'UTF-8');
echo "r-".html_entity_decode('ʳ', ENT_COMPAT, 'UTF-8');
echo "s-".html_entity_decode('ˢ', ENT_COMPAT, 'UTF-8');
echo "t-".html_entity_decode('ᵗ', ENT_COMPAT, 'UTF-8');
【讨论】:
以上是关于jQuery Keypad:如何制作上标字符?的主要内容,如果未能解决你的问题,请参考以下文章
jQuery Keypad / Primefaces 键盘重新映射空格键