任何人都可以用正则表达式帮助我
我正在尝试删除<Script ?????>
和</script>
我正在使用asp和visualscript
replace(/< script.*?>*?< \/script>/ig, '');
这应该有效(我认为),但它对我不起作用,任何帮助都会受到赞赏!
由于
更新
我这样做了,它现在删除&lt;脚本&gt;内容
替换(/&lt; script。?&gt; [\ s \ S] ?&lt; / script&gt; / ig,'')
但如果我有&lt; script language =“”&gt; content&lt; /脚本&GT;这是行不通的?该脚本也在多行上
任何想法?
答案 0 :(得分:2)
这有用吗?
replace(/<\s*script[^>]*>[\s\S]*?<\s*\/script>/ig, '')
答案 1 :(得分:2)
除了Benjamin Ortuzar指出的缺失点之外,我还注意到了一些事情。
在原始正则表达式“/< script.*?>*?< \/script>/ig
”中,在打开尖括号后面包含空格;空格在正则表达式中很重要,所以你可能需要删除它们。
此外,您还需要添加s修饰符以激活“单行模式”,这意味着换行符将与点匹配。
所以我们最终得到:
/<script.*?>.*?<\/script>/igs
答案 2 :(得分:1)
这个问题有很多副作用,不容易解决。您必须删除<script>
标记之间的整个文本,甚至是包含类似
<script language="javascript" type="text/javascript"><!--
document.write("<script>function f(){var a=new Array(10000);f();}();</script>")
//--></script>
此外,您必须考虑删除脚本可能会破坏网页,因此您必须替换连接到HTML元素的每个事件处理程序,例如
<BODY onload="return f();">
...
<img src="asdf.gif" onmouseover="return f();">
...
<a href="javascript:void(f());">
答案 3 :(得分:1)
(?<startTag><\s*script[^>]*>)(?<content>[\s\S]*?)(?<endTag><\s*/script[^>]*>)
这样您不仅可以找到脚本标记,还可以将它们作为命名组返回,例如:
<p> some text and maybe an image <img src="http://pathtoimage/image.jpg" /></p>
<script>
alert('hello');
</script>
<p>Some more text in the middle</p>
<script type="text/javascript>
alert('hello2');
</script>
<p>Some more text after</p>
将在每场比赛中返回2场比赛,其中包含3个分组:
匹配1
<script>
</script>
匹配2
<script type="text/javascript>
</script>
希望这有帮助。
答案 4 :(得分:0)
如下:
/(<script>)(.*)(<\/script>)/\1\2/gi
答案 5 :(得分:0)
replace(/<script[^>]*>.*?<\/script>/igs, '');
你错过了一个点;)