일시적으로, 다른 무언가로 <a href ...>...</a>
를 인코딩 한 후 다른 모든 태그를 제거 <a>
태그 복원 : 나는 NUL 및 SOH 문자를 사용하는 위의 코드에서
// Example in javascript:
string.
replace(/<a(.*?)>/g,'\0$1\0').
replace(/<\/a>/,'\1').
replace(/<[^>]*>/,'').
replace(/\0(.*?)\0/,'<a$1>').
replace(/\1/,'</a>');
를 (ASCII은 0x00 및 0x01로) <a>
태그 교체로 단순히 문자열에 나타날 가능성이 매우 낮기 때문입니다. 문자열에 나타나지 않는 다른 문자 또는 일련의 문자로 자유롭게 바꾸십시오.
다른 의견은 브라우저에서 작동하는 것 같습니다. 이 경우 브라우저는 이미 HTML을 구문 분석하여 멋진 DOM 트리로 만듭니다. 트리를 분석하고 그것을 당신이 원하는 방식으로 처리하기 위해 DOM의 방법을 사용
function simpleHTML (domNode) {
var ret = "";
if (domNode.nodeType === Node.ELEMENT_NODE) {
var children = domNode.childNodes;
for (var i=0;i<children.length;i++) {
var child = children[i];
// Filter out unwanted nodes to speed up processing.
// For example, you can ignore 'SCRIPT' nodes etc.
if (child.nodeName != 'SCRIPT') {
if (child.nodeName == 'A') {
ret += '<a href="' + child.href + '">' +
simpleHTML(child) +
'</a>';
}
else {
ret += simpleHTML(child);
}
}
}
}
else if (domNode.nodeType === Node.TEXT_NODE) {
ret += domNode.nodeValue;
}
return ret;
}
// serialize the whole document:
var simpleDocument = simpleHTML(document.body);
// serialize a div:
var simpleDiv = simpleHTML(document.getElementById('some_div'));
// filter a html formatted string:
var temp = document.createElement('DIV');
temp.innerHTML = original_string;
simple_string = simpleHTML(temp);
HTML 파서를 사용하십시오! 정규식은 HTML을 올바르게 구문 분석 할 수 없습니다. –
다음 게시물을 놓쳤습니다. http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 –
어떤 프로그래밍 언어를 사용하고 있습니까? 답변은 귀하가 우리에게 말하면 훨씬 관련이 있습니다. –