7

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

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

2 后跟上标 'n' 2^n

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

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

所以目标是显示一个上标的字符而不是数字。


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

4

3 回答 3

19

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

您最好完全放弃alert(),并在页面本身内模拟模式对话框。已经存在许多提供此功能的库,包括出色的jQuery UI 对话框

于 2009-08-28T19:08:17.157 回答
4

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

问题是:没有“Unicode \u00B”字符。您使用的字符是\u00B2(定义为“上标二”)。结尾有两个的事实本质上是巧合。例如,代码点\u00B1是不相关的(它是加号/减号)。

还有一些其他字符在 Unicode 中具有特定的上标版本,您可以在此搜索中找到它们,但并不是每个字母都有上标版本。

于 2009-08-28T19:10:25.793 回答
2

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

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

于 2009-08-28T19:16:42.630 回答