我有一個HTML格式的字符串,我需要將所有數學指數以HTML格式<sup></sup>
替換爲不含HTML格式的數學指數。我使用replace()
方法,但我需要找到並替換100個指數,從<sup>1</sup>
到<sup>100</sup>
,我應該寫所有數字(從1到100)。自動化替換JavaScript中的大量內容字符串
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, "¹⁰⁰");
我的問題是:有一種方法來自動完成這個任務嗎?謝謝!
UPDATE:我正在做這個替換,因爲我正在開發iOS應用程序,能夠打印(以HTML格式)並複製到剪貼板(平面文本)。這是因爲我正在更換<sup>
號碼。
UPDATE 14/Oct/2014:我也需要替換負指數。使用@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('');
});
儘管如此,以純文本格式複製到剪貼板可能會更好地完成爲'x^100'而不是'x¹⁰⁰'。我不知道你的字體,但它看起來不好我的... – Ryan 2014-09-13 00:32:00
感謝您的評論@minitech,但這是我開始我的應用程序的方式,但我如何管理大型數學表達式它看起來不那麼明確。所以我決定改變這種方式'x¹⁰⁰'。 – 2014-09-13 01:37:00