JSFiddle - React, Tailwind, and code Playground

HTML

<p id="output1"></p>
<p id="output2"></p>
<p id="output3"></p>

JavaScript

var str = "ab";

// Place initial string in dom
document.getElementById('output1').innerHTML = str + " ("+str.length+")"; // expected: ab (3)

var ranges = ['[\u0020-\u007F]',
              '[\u00A0-\u00FF]',
              '[\u0100-\u017F]',
              '[\u0180-\u024F]',
              '[\u02B0-\u02FF]',
              '[\u0370-\u03FF]',
              '[\u1D00-\u1D7F]',
              '[\u1E00-\u1EFF]',
              '[\u20A0-\u20CF]',
              '[\u2150-\u218F]',
              '[\u2190-\u21FF]'].join('|');
var regex = new RegExp('(?!(' + ranges + '))', 'g');

// First round, replace with something visible
str = str.replace(regex, '\u2327');

document.getElementById('output2').innerHTML = str + " ("+str.length+")";// expected: a⌧b⌧ (5)

// No replace with empty string
str = str.replace(/\u2327/g, '');

document.getElementById('output3').innerHTML = str + " ("+str.length+")";// expected: ab (2)