假设我有一个这样的字符串:
<code>Blah blah Blah
enter code here</code>
<code class="lol">enter code here
fghfgh</code>
我想使用 javascript 将<code>
标签之间的所有出现替换为 html 编码的回调函数。
这是我目前拥有的:
function code_parsing(data){
//Dont escape & because we need that... in case we deliberately write them in
var escape_html = function(data, p1, p2, p3, p4) {
return p1.replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
};
data = data.replace(/<code[^>]*>([\s\S]*?)<\/code>/gm, escape_html);
// \[start\](.*?)\[end\]
return data;
};
不幸的是,此功能正在删除"<code>"
标签并仅用内容替换它们。我想保留<code>
带有任意数量属性的标签。如果我只是将<code>
标签硬编码回其中,我将丢失属性。
我知道正则表达式不是最好的工具,但其中不会有任何嵌套元素。