如何根据正则表达式中的条件搜索字符串

问题描述 投票:0回答:1

我有一个输入字符串,我需要将字符串中的所有标签替换为空格,它可以正常工作。但是我不想选择“ title”属性内的标签。

这是我的输入字符串

var temp='<div title="Minimum Standards for <mark>Child</mark> Protection in Humanitarian Action (CPMS) | content of" >
  <mark>Child</mark>
</div>';

这是我用来替换字符串的正则表达式代码。

temp = String(temp).replace(/(<mark[^>]*>|<\/mark>)/g, '');

[我只需要匹配“ title”属性之外的标记标签,或者我只想忽略“ title”属性内部的标记标签,我需要一个正则表达式来表示感谢。

javascript regex regular-language
1个回答
1
投票

一种选择是将HTML标记解析为文档,然后用mark选择所有querySelectorAll标签并删除它们:

const str = `<div title="Minimum Standards for <mark>Child</mark> Protection in Humanitarian Action (CPMS) | content of" >
  <mark>Child</mark>
</div>`;
const doc = new DOMParser().parseFromString(str, 'text/html');
doc.body.querySelectorAll('mark').forEach(mark => mark.remove());
console.log(doc.body.innerHTML);
© www.soinside.com 2019 - 2024. All rights reserved.