在JavaScript的alert()
、confirm()
或prompt()
对话框中是否可以显示上标字符(不仅是数字)?
由于一些原因,我需要插入一个文本:
- 2后跟上标'n'*2^n
进入JavaScript警告、确认和提示框。快速的谷歌搜索确实有帮助,但并不完全是我找到了一种方法,使用Unicode \u00B 字符在对话框中显示上标数字,但它不适用于字符
alert('2\u00B2'); shows correctly 2^2
alert('2\u00Bn'); shows 2u00Bn
所以目标是显示一个上标的字符,而不是数字。
^用作幂,并显示下一个字符是上标的,以防有人混淆。
5条答案
按热度按时间wz8daaqr1#
这个字符代码并没有什么神奇之处--它只是碰巧被选作“上标2”字符。还有一个“上标三”(
\u00B3
)(³)、一个“上标一”(\00B9
)(¹)和一个“上标拉丁小写字母N”(\u207F
)()。但如果您需要其他上标,就不太走运了--alert()
不呈现HTML,所以只能使用Unicode定义的字符。您最好完全放弃
alert()
,并在页面本身中模拟一个模态对话框。许多库已经提供了这种功能,包括优秀的jQuery UI Dialog。sg24os4d2#
否,没有可靠的方法将上标文本放入警告框。您当然可以在页面上使用HTMLx 1 m0n1x标记来执行此操作,但在警告框中则受到更多限制。
问题是:没有“Unicode
\u00B
”字符。您使用的字符是\u00B2
(定义为“上标二”)。最后有一个2的事实本质上是巧合。例如,代码点\u00B1
是不相关的(它是加号/减号)。还有一些其他字符在Unicode中有特定的上标版本,您可以在this search中找到,但并不是每个字母都有上标版本。
o4hqfura3#
Unicode或UTF-8需要两对字符或四个十六进制数字来组成一个字符;
00B2
被识别为“上标2”,而00Bn
是无效的十六进制值。上标数字1-3是:00B9
、00B2
和00B3
。不幸的是,没有神奇的上标前缀,将使以下字符上标。只有HTML
<sup>
可以做到这一点,就像Shog说的,alert呈现纯文本。dgiusagp4#
我最终写了以下代码来生成unicode上标整数:
如果您还需要其他字符,this blog post列出了大多数(但不是所有)大写和小写上标unicode字母,并且扩展上面的代码以处理其他字符相对简单。
yhived7q5#
npm包numbers-to-superscript将指定字符串中的所有数字转换为上标。
或许是个选择。