临时编码
删除所有其他标签,然后恢复
标签:
// Example in javascript:
string.
replace(//g,'\0$1\0').
replace(//,'\1').
replace(/]*>/,'').
replace(/\0(.*?)\0/,'').
replace(/\1/,'');
在上面的代码中,我使用nul和soh字符(ascii 0x00和0x01)作为
标签只是因为它们不太可能出现在字符串中。请随意用字符串中不会出现的任何其他字符或字符序列替换它们。
从其他注释中,您似乎正在浏览器中操作。在这种情况下,浏览器已经将HTML解析为一个不错的DOM树。使用DOM方法对树进行解析,并按您希望的方式进行处理:
function simpleHTML (domNode) {
var ret = "";
if (domNode.nodeType === Node.ELEMENT_NODE) {
var children = domNode.childNodes;
for (var i=0;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 += '
simpleHTML(child) +
'
';}
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);