[英]Regular Expression/JS – remove content from specific xml tags and keep only text
我想從特定標簽中刪除內容並只保留文本。 我正在使用 Javascript 但在 React Native 上,所以我不能使用 Dom 或 JQuery。
例如,對於這個輸入,我想刪除“li”的所有子標簽:
<div>
<div><span>hello</span></div>
<ul>
<li><div><span>hello 2</span></div></li>
<li><div><span>hello 3</span></div></li>
</ul>
</div>
我想要這個 output:
<div>
<div><span>hello</span></div>
<ul>
<li>hello 2</li>
<li>hello 3</li>
</ul>
</div>
我怎樣才能做到這一點? (同樣,不使用 DOM 或 JQuery)
謝謝!
這是一個原生的 JavaScript 方法來過濾掉<li>
標簽中的特定標簽:
var str = '<div>\n' + ' <div><span>hello</span></div>\n' + ' <ul>\n' + ' <li><div><span>hello 2</span></div></li>\n' + ' <li><div><span>hello 3</span></div></li>\n' + ' </ul>\n' + '</div>'; var re1 = /(<li> *)(.*?)(<\/li>)/g; var re2 = /<\/?(div|span)\b[^>]*> */g; var result = str.replace(re1, function(m, p1, p2, p3) { return p1 + p2.replace(re2, '') + p3; }); console.log('result:\n' + result);
控制台 output:
result:
<div>
<div><span>hello</span></div>
<ul>
<li>hello 2</li>
<li>hello 3</li>
</ul>
</div>
解釋:
re1
標識<li>
標簽
g
標志p1
, p2
, p3
p2
中刪除所有div
和span
標簽,這是<li>
標簽中的內容
re2
以添加額外的標簽來過濾g
標志
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.