Arabic to Indic conversion (md) sall script digits
by Manuel Souto Pico
HTML
<!DOCTYPE html>
<html lang="ar-EG">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<h4>
The two sentences below should be identical in ar-EG:
</h4>
<div>
Input:
<div dir="rtl">
مساحة اليابسة ١٣٥
كم^٢^
أو كيلومتراً مربعاً.
<br/>
احسب المسافة بين النقطتين (س~١~, ص~١~) و (س~٢~, ص~٢~).
<br/>
متتالية فيبوناتشي: F~n~ = F~n-1~ + F~n-2~
</div>
</div>
<div>
Expected output:
<div dir="rtl">
مساحة اليابسة ١٣٥ كم<sup>٢</sup>
أو كيلومتراً مربعاً.
<br/>
احسب المسافة بين النقطتين (س<sub>١</sub>, ص<sub>١</sub>) و (س<sub>٢</sub>, ص<sub>٢</sub>).
<br/>
متتالية فيبوناتشي: F<sub>n</sub> = F<sub>n-1</sub> + F<sub>n-2</sub>
</div>
</div>
</body>
</html>
JavaScript
var formatted = document.body.innerHTML.replace(/(?<![~])~(?![~])([^~\n]+)(?<![~])~(?![~])/g, "<sub>$1</sub>")
document.body.innerHTML = formatted.replace(/(?<!\^)\^(?!\^)([^^\n])(?<!\^)\^(?!\^)/g, "<sup>$1</sup>")