我在搜寻文本中的Unicode字符时遇到了同样的问题,但无法找到解决方案。
所以我在https://jsfiddle.net/boppy/3orednps/8/上制作了一个基本的解决方案。
请把它只当做起点。我是为在Chrome中使用而制作的,只对少量细节进行了修改以便在Firefox中运行。- 至少它添加了OP要求的所有字符。
基本上它是这样的(请保持顺序!):
// _spc ==> Single Space Char chr(32)
html = html.replace(/ /g, '<span class="_m _spc">·</span>');
// _tab ==> Tab Stops chr(9)
html = html.replace(/\t/g, '<span class="_m _tab"></span>');
// CarriageReturn chr(13)
html = html.replace(/\r/g, '');
// _brk ==> NewLine chr(10)
html = html.replace(/\n/g, '<span class="_m _brk">¶</span><br>');
// _np ==> non-printable lower ASCII range chr(0)...chr(31) + personally known char(s)
html = html.replace(/([\u0000-\u001F\u00AD])/g, '<span class="_m _np">$1</span>');
// _uc ==> Upper unicode range starting chr(255)
html = html.replace(/([\u00FF-\u9999])/g, '<span class="_m _uc">$1</span>');