가정하자 내가 가진이 같은 문자열 :어떻게 태그 자체를 교체하지 않고 html 태그 사이의 내용을 대체하는
내가 인코딩을 html로 콜백 함수와<code>
태그 사이의 모든 발행 수를 대체하는 자바 스크립트를 사용할
<code>Blah blah Blah
enter code here</code>
<code class="lol">enter code here
fghfgh</code>
그것.
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>
태그를 다시 하드 코딩하면 속성을 잃게됩니다.
정규식이 인데 가장 좋은 도구는 아니지만 중첩 된 요소는 없을 것입니다.
"...하지만 중첩 된 요소는 없습니다." 중첩 된 주석, 속성 값의 꺾쇠 괄호, 태그 이름의 비표준 사례 등은 무엇입니까? HTML 문법은 크고 규칙적이지 않습니다. –
사실 더 나은 방법이 앞으로 필요할 것입니다. 실제 HTML 파서에 대한 제안 사항이 있습니까? – CMCDragonkai
JS에서 뻔뻔한 플러그가 마음에 들지 않는다면 http://code.google.com/p/google-caja/wiki/JsHtmlSanitizer –