COM*_*ARD 3 javascript regex string unicode superscript
我正在努力寻找一个合理的解决方案。我需要替换以下字符:?¹²³?????? 使用正则表达式替换。我认为您会这样做:
item = item.replace(/[?¹²³??????]/g, '');
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试这样做时,notepad ++会将符号5-9转换为常规脚本编号。我意识到这可能与我正在使用的编码格式有关,我将其设置为ANSI。
我从来没有真正了解过各种编码格式之间的区别。但是我想知道是否有解决此问题的简便方法?
这是用于查找所有上标数字的简单正则表达式
/\p{No}/gu/
Run Code Online (Sandbox Code Playgroud)
分解:
\p{No}
匹配上标或下标数字,或者不是数字的数字[0-9]u modifier
:unicode:模式字符串被视为UTF-16。也导致转义序列匹配unicode字符g modifier
:全球。所有比赛(在第一个比赛中不返回)https://regex101.com/r/zA8sJ4/1
现在,大多数现代浏览器仍未在regex中内置对unicode码的支持。我建议使用xregexp
图书馆
XRegExp提供增强(和可扩展)的JavaScript正则表达式。您将获得新的现代语法和标志,而浏览器本身不支持。XRegExp还是regex实用程序带,其工具可简化客户端grep和解析,同时使您不必担心JavaScript regexe的烦人方面,例如跨浏览器不一致或手动操作lastIndex。
HTML解决方案
HTML具有<sup>
用于表示上标文本的标签。
标签定义上标文本。上标文字显示在法线上方半个字符,有时以较小的字体呈现。上标文本可用于脚注,例如WWW [1]。
如果有上标数字,则html标记几乎肯定具有sup
标签。
/\p{No}/gu/
Run Code Online (Sandbox Code Playgroud)
var math = document.getElementById("math");
math.innerHTML = math.innerHTML.replace(/<sup>[\d]?<\/sup>/g, "");
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3505 次 |
最近记录: |