【发布时间】:2021-11-06 03:45:24
【问题描述】:
我正在寻找一个正则表达式来跳过字符串中的data-value="4" 属性,例如我有一个字符串,即
Hello this is string <sfpart contenteditable="false" data-value="4">‏</sfpart> and the 4 number in string
现在在上面的字符串中,我想用<span class="yellow">4</span> 替换4,但不是data-value="4" 内的4
我可以通过以下代码获取4 并用<span class="yellow">4</span> 替换它
const reg = new RegExp('('4')', 'gi');
const str = str.replaceAll(reg, '<span class="yellow">$1</span>');
但问题在于正则表达式在 data-value 属性中选择 4 并将其替换为 html span 标签,即 data-value="<span class="yellow">4</span>" 所以我想跳过这部分。
有什么可以帮忙的吗?
【问题讨论】:
-
什么是
<sfpart>? -
@Andy 这是来自 DB 的 HTML 标记,这些标记的数据属性中的任何内容都需要被跳过,这样它就不会被替换,即
data-value="<span class="yellow">4</span>"
标签: javascript html regex