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

时间:2017-10-18 12:52:42

标签: javascript jquery lodash

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

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

3 个答案:

答案 0 :(得分:2)

没什么好看的:你可以用字符替换5字符。

var result = "n⁵".replace("⁵", "5");

console.log(result);

答案 1 :(得分:2)

要替换每个字符,您可以将所有上标字符组合在一个有序字符串中(以便位于索引0,¹位于索引1处等)并获取相应的数字indexOf

function digitFromSuperscript(superChar) {
    var result = "⁰¹²³⁴⁵⁶⁷⁸⁹".indexOf(superChar);
    if(result > -1) { return result; }
    else { return superChar; }
}

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

执行此操作
"n⁵".replace(/./g, digitFromSuperscript)

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

"n⁵".replace(/[⁰¹²³⁴⁵⁶⁷⁸⁹]/g, digitFromSuperscript)

答案 2 :(得分:1)

您可以使用替换功能使用正则表达式替换:

&#13;
&#13;
function replaceSupers(str) {
  var superMap = {
    '⁰': '0',
    '¹': '1',
    '²': '2',
    '³': '3',
    '⁴': '4',
    '⁵': '5',
    '⁶': '6',
    '⁷': '7',
    '⁸': '8',
    '⁹': '9'
  }

  return str.replace(/[⁰¹²³⁴⁵⁶⁷⁸⁹]/g, function(match) {
    return superMap[match];
  });
}

console.log(replaceSupers('a¹²n⁴⁵lala⁷⁸⁹'));
&#13;
&#13;
&#13;