次のような文字列があるとします。
<code>Blah blah Blah
enter code here</code>
<code class="lol">enter code here
fghfgh</code>
<code>
javascriptを使用して、タグ間のすべての出現箇所を、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>
戻すと、属性が失われます。
正規表現が最適なツールではないことは知っていますが、ネストされた要素は含まれていません。