var ne = document.createElement('textarea'),
str = '<h1>sasasas<strong>hello</strong></h1>';
var newstr = str.replace(/(<\/?(\w+)>)/g, function(m0, m1, m2) {
if (m2 != 'strong' && m2 != 'i')
return m0.replace(/</g, '<')
.replace(/>/g, '>');
else
return m0;
});
ne.appendChild(document.createTextNode(newstr));
return ne.innerHTML;
它適用於簡單的標籤(沒有屬性 - 我不知道您的文本的來源)。 或者,因爲它是在評論說,這樣的事情:
var ne = document.createElement('textarea'),
str = '<h1>sasasas<strong>hello</strong></h1>';
var newstr = str.replace(/(<(\/?(strong|i))>)/gi, 'BRA$2KET')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/(BRA(\/?(strong|i))KET)/gi, '<$2>');
ne.appendChild(document.createTextNode(newstr));
return ne.innerHTML;
或者,最好的辦法,只是恢復逃脫標籤
var ne = document.createElement('textarea'),
str = '<h1>sasasas<strong>hello</strong></h1>';
var newstr = str.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/(<(\/?(strong|i))>)/gi, '<$2>');
ne.appendChild(document.createTextNode(newstr));
return ne.innerHTML;
可能檢查'
'
'''和''並在你轉義html之前用它們各自的字符串替換它們? – starvator 2014-09-29 19:00:15