是否可以在JavaScript中的alert()
,confirm()
或prompt()
对话框中显示上标字符(不仅仅是数字)?
由于某些原因,我需要插入一个文本:
2后跟上标'n' 2 ^ N
进入JavaScript警报,确认并提示框。快速谷歌搜索确实有帮助,但不完全是我找到了一种方法,使用Unicode \ u00B 字符在对话框中显示上标数字,但它不适用于字符
alert('2\u00B2'); shows correctly 2^2
alert('2\u00Bn'); shows 2u00Bn
所以我们的目标是展示一个上标而不是数字的角色。
^用作Power并显示下一个字符是上标的,以防万一有人感到困惑。
答案 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是:00B9
,00B2
和00B3
。
不幸的是,没有神奇的上标前缀会产生以下字符上标。只有HTML <sup>
可以做到这一点,就像Shog所说,提醒呈现纯文本。