gpt4 book ai didi

javascript - 正则表达式替换所有上标数字

转载 作者:行者123 更新时间:2023-12-03 11:17:14 25 4
gpt4 key购买 nike

我正在努力寻找一个合理的解决方案。我需要替换以下字符:⁰¹²³⁴⁵⁶⁷⁸⁹ 使用正则表达式替换。我认为你会这样做:

item = item.replace(/[⁰¹²³⁴⁵⁶⁷⁸⁹]/g, '');

但是,当我尝试这样做时,notepad++ 将符号 5-9 转换为常规脚本编号。我意识到这可能与我使用的编码格式有关,我看到它设置为 ANSI。

我从来没有真正理解过各种编码格式之间的区别。但我想知道这个问题是否有任何简单的解决方法?

最佳答案

这是查找所有上标数字的简单正则表达式

/\p{No}/gu/

分割:

  • \p{No}匹配上标或下标数字,或不是数字 [0-9] 的数字
  • u modifier : unicode: 模式字符串被视为 UTF-16。还会导致转义序列匹配 unicode 字符
  • g modifier : 全局的。所有比赛(第一场比赛不返回)

https://regex101.com/r/zA8sJ4/1

现在,大多数现代浏览器仍然没有内置对正则表达式中的 unicode 数字的支持。我建议使用 xregexp图书馆

XRegExp provides augmented (and extensible) JavaScript regular expressions. You get new modern syntax and flags beyond what browsers support natively. XRegExp is also a regex utility belt with tools to make your client-side grepping and parsing easier, while freeing you from worrying about pesky aspects of JavaScript regexes like cross-browser inconsistencies or manually manipulating lastIndex.

http://xregexp.com/

HTML 解决方案

HTML 有一个 <sup>表示上标文本的标记。

The tag defines superscript text. Superscript text appears half a character above the normal line, and is sometimes rendered in a smaller font. Superscript text can be used for footnotes, like WWW[1].

如果有上标数字,则 html 标记几乎肯定有 sup标记。

var math = document.getElementById("math");

math.innerHTML = math.innerHTML.replace(/<sup>[\d]?<\/sup>/g, "");
<p id="math">4<sup>2</sup>+ 3<sup>2</sup></p>

关于javascript - 正则表达式替换所有上标数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35976910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com