如果我有像
这样的字符串<p>this is some content</p><script>alert('hello');</script>
我想获取没有任何脚本的字符串,但是使用格式化,我该怎么做?
<p>this is some content</p>
我试过
var html = "<p>etc</p><script>alert('hello world');</script>".replace("<script*</script>", "p");
但这给了我类似的东西
".replace("", "p"); $('#blogDescription').html(html); }); });
答案 0 :(得分:2)
您可以在不使用正则表达式的情况下执行此操作,通过使用一些DOM操作,您可以运行从字符串创建的DOM片段中的每个元素,并删除script
标记。
var html = "<p>etc</p><script>alert('hello world');</script>";
var container = document.createElement('div');
container.innerHTML = html;
function stripScript(parent){
var elements = parent.children;
for(var i = 0; i < elements.length; i++){
if(elements[i].nodeName === 'SCRIPT'){
parent.removeChild(elements[i]);
} else if(elements[i].children.length > 0){
stripScript(elements[i]);
}
}
}
stripScript(container);
console.log(container.innerHTML);
或者使用jQuery
var html = "<p>etc</p><script>alert('hello world');</script>";
container = document.createElement('div');
container.innerHTML = html;
$(container).find('script').remove();
console.log(container.innerHTML);
答案 1 :(得分:0)
尝试使用此
/<script\b[^>]*>(.*?)<\/script>/i
答案 2 :(得分:0)
var html = "<p>etc</p><script>alert('hello world');</script>".replace("<script>").replace("</script>");