自动替换JavaScript中的大量内容字符串

Jab*_*uez 2 html javascript string replace

我有一个HTML格式的字符串,我需要将HTML格式的所有数学指数替换<sup></sup>为没有HTML格式的数学指数.

我使用的replace()方法,但我需要查找和替换100个指数,从<sup>1</sup><sup>100</sup>了,我应该写的所有的数字(从1到100).

var copiar = texto.
                replace(/<br>/g, "\n").
                replace(/<sup><\/sup>/g, "").
                replace(/<sup>2<\/sup>/g, "²").
                replace(/<sup>3<\/sup>/g, "³").
                replace(/<sup>4<\/sup>/g, "?").
                replace(/<sup>5<\/sup>/g, "?").
                replace(/<sup>6<\/sup>/g, "?").
                replace(/<sup>7<\/sup>/g, "?").
                replace(/<sup>8<\/sup>/g, "?").
                replace(/<sup>9<\/sup>/g, "?").
                replace(/<sup>10<\/sup>/g, "¹?");
                ...
                replace(/<sup>100<\/sup>/g, "¹??");
Run Code Online (Sandbox Code Playgroud)

我的问题是:有一种方法可以自动完成这项任务吗?谢谢!

更新:我正在进行此替换,因为我正在开发一个适用于iOS的应用程序,能够打印(以HTML格式)并复制到剪贴板(平面文本).这就是原因,因为我更换了这些<sup>数字.

更新2014年10月14日:我也需要替换负面指数.使用@minitech答案并修改一点,我可以替换所有指数(正面和负面).也许对某人有用,这里的代码:

var map = '?¹²³??????';

var copiar = texto.replace(/<sup>(\-*(\d*))<\/sup>/g, function (str, digits){
    return Array.prototype.map.call(digits, function (digit) {
        var exp = "";

        if (digit != '-') {
            exp += map.charAt(digit);
        } else {
            exp += "¯";
        }
        return exp;
    }).join('');
});
Run Code Online (Sandbox Code Playgroud)

Ry-*_*Ry- 6

一个字符串,charAt提供一种方便的方法将数字映射到相应的上标数字:

var map = '?¹²³??????';

var copiar = texto.replace(/<sup>(\d*)<\/sup>/g, function (_, digits) {
    return Array.prototype.map.call(digits, function (digit) {
        return map.charAt(+digit);
    }).join('');
});
Run Code Online (Sandbox Code Playgroud)