是否可以在alert()对话框中显示上标字符?

时间:2009-08-28 19:02:00

标签: javascript unicode character alert superscript

是否可以在JavaScript中的alert()confirm()prompt()对话框中显示上标字符(不仅仅是数字)?

由于某些原因,我需要插入一个文本:

2后跟上标'n' 2 ^ N

进入JavaScript警报,确认并提示框。快速谷歌搜索确实有帮助,但不完全是我找到了一种方法,使用Unicode \ u00B 字符在对话框中显示上标数字,但它不适用于字符

alert('2\u00B2'); shows correctly 2^2
alert('2\u00Bn'); shows 2u00Bn

所以我们的目标是展示一个上标而不是数字的角色。


^用作Power并显示下一个字符是上标的,以防万一有人感到困惑。

3 个答案:

答案 0 :(得分:13)

这个字符代码没有任何神奇之处 - 它恰好是为“Superscript two”字符选择的那个。还有一个“上标三”(\u00B3)(³)一个“上标一个”(\00B9)(¹)和一个“上标拉丁小写字母N”(\u207F)( ⁿ)。但是如果你需要一些其他的上标,那你就不幸了 - alert()不会呈现HTML,因此你只能使用Unicode定义的字符。

您可能最好完全放弃alert(),并在页面内模拟模态对话框。现有许多库已经提供此功能,包括优秀的jQuery UI Dialog

答案 1 :(得分:3)

,没有可靠的方法将上标文本添加到警告框中。您当然可以使用HTML <sup>标记在页面上执行此操作,但在警告框中您更受限制。

问题是:没有“Unicode \u00B”字符。您正在使用的角色是\u00B2(定义为“上标二”)。事实上,最后有两个基本上是巧合。例如,代码点\u00B1是无关的(它是加号/减号)。

还有一些其他字符在Unicode中有特定的上标版本,您可以在this search中找到它们,但每个字母都没有上标版本。

答案 2 :(得分:1)

Unicode或UTF-8需要两对字符或四个十六进制数字来制作字符; 00B2被识别为“上标2”,而00Bn是无效的十六进制值。上标1-3是:00B900B200B3

不幸的是,没有神奇的上标前缀会产生以下字符上标。只有HTML <sup>可以做到这一点,就像Shog所说,提醒呈现纯文本。