我有一些带有html标签的字符串。
var str = '<a href="www.com">text</a>
<script>
//some code etc
</script>
............... etc
';
我需要删除&lt; script&gt; ....&lt; / script&gt;使用resxp和js的replace()函数。无法想象如何做到这一点。
我的努力是:
/(<script).(</script>)/m
/<script.*>([\s\S]*)</script>/m
/(<script)*(</script>)/
/<script*</script>/
没有成功=(
答案 0 :(得分:2)
...试
/<script>[\s\S]*<\/script>/
如果这是针对任意HTML的,请考虑使用DOM操作方法。
var fauxDocumentFragment = document.createElement("div");
fauxDocumentFragment.innerHTML = str;
var scriptElements = fauxDocumentFragment.getElementsByTagName("script");
while (scriptElements.length) {
scriptElements[0].parentNode.removeChild(scriptElements[0]);
}
如果您足够幸运,只需支持较新的浏览器,请使用...
var fauxDocumentFragment = document.createElement("div");
fauxDocumentFragment.innerHTML = str;
[].forEach(fauxDocumentFragment.querySelectorAll("script"), function(script)
script.parentNode.removeChild(script);
});
答案 1 :(得分:1)
您可以尝试以下操作:
str.replace(/<script.*?>.*?<\/script>/m, "");