如何在javascript中将上标数字转换为实数

0 javascript jquery lodash

如何将包含上标的字符串转换为普通字符串?

例如,我有一个包含"n?". 我想将其转换为"n5". 对于字符串"n?",我没有使用任何<sup></sup>标签。它就像你看到的一样。

aps*_*ers 5

要替换每个字符,您可以将所有上标字符组合到一个有序字符串中(即?位于索引 0、¹位于索引 1 等)并通过indexOf以下方式获取它们对应的数字:

function digitFromSuperscript(superChar) {
    var result = "?¹²³??????".indexOf(superChar);
    if(result > -1) { return result; }
    else { return superChar; }
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以通过此函数运行字符串中的每个字符。例如,您可以通过replace回调来实现:

"n?".replace(/./g, digitFromSuperscript)
Run Code Online (Sandbox Code Playgroud)

或者更理想的是,将替换限制为仅考虑上标字符:

"n?".replace(/[?¹²³??????]/g, digitFromSuperscript)
Run Code Online (Sandbox Code Playgroud)