[英]Regex replace “<X>” brackets
我正在嘗試編寫一些代碼來遍歷 html 論壇數據並替換一些括號。
我基本上是想轉身
<br><br>
<br>
<img src="blah"></img>
到
[br][br]
[br]
[img src="blah"][/img]
並避免更改文本,例如
:<
<("<) <(")> (>")>
我現在正在使用 javascript 和正則表達式模式。 我能夠在兩個標簽之間找到正則表達式,但不能在字符串周圍找到兩個標簽。 什么是最好的方法來做到這一點?
可能有一種更優雅的方法來做到這一點 - 但這基本上是我在 2000 年代早期所做的(使用 const/let 等對更現代的 JS 進行輕微更新)
const input = `<br><br> <br> <img src="blah"></img>`; const body = document.createElement('body'); body.innerHTML = input; function square(obj) { let out = ''; let el; while(el = obj.firstChild) { if (el.nodeType == 3) { out += el.nodeValue; } else { out += `[${el.nodeName}]`; out += square(el); if (!["BR"].includes(el.nodeName)) { out += `[/${el.nodeName}]`; } } el.remove(); } return out; } console.log(square(body));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.