如何将特定文本替换或更改为新的HTML?
旧HTML:
<div id="test">
<p>
[b] lorem ipsum [/b]
</p>
<p>
[textarea] lorem ipsum [/textarea]
</p>
</div>
新HTML:
<div id="test">
<p>
<b>lorem ipsum</b>
</p>
<p>
<textarea>lorem ipsum</textarea>
</p>
</div>
Force_Tag = [
'[b]','<pre>',
'[/b]','</b>',
'[textarea]','<textarea>',
'[/textarea]','</textarea>',
// ...
]
答案 0 :(得分:1)
您可以String.prototype.replace()
使用RegExp
/(\[)|(\])/g
来捕获"["
,"]"
,将第一个捕获组替换为"<"
,第二个捕获组使用">"
,将.innerHTML
元素设置为替换字符串
<div id="test">
<p>
[b] lorem ipsum [/b]
</p>
<p>
[textarea] lorem ipsum [/textarea]
</p>
</div>
<script>
for (let p of document.querySelectorAll("#test p")) {
p.innerHTML = p.innerHTML.replace(/(\[)|(\])/g, function(match, p1, p2) {
if (p1) return "<";
if (p2) return ">"
})
}
</script>