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>")