正则表达式删除<s c r i p t> </script>标签

时间:2019-07-12 12:32:00

标签: javascript php regex

我正在尝试从 PHP 中的字符串中删除<script></script>标签。

我尝试使用一种正则表达式来处理诸如<script><sCRIpt>< script>之类的不同类型的标签拼写错误,但我不知道要找到{{ 1}}。

目标是构建一个能够删除所有错字中所有类似<s c r i p t>的标记的正则表达式。

这是<script> var中不需要的数据的示例:

$description

我的代码,假设<script src="https://virus.js"></s c r i pt> 是一个字符串。

$description

2 个答案:

答案 0 :(得分:0)

如果您尝试防止脚本注入,一种更安全的方法是转义字符串而不是尝试替换可能是脚本块的字符串。但是要回答您的问题,您可以对结束标签执行类似的操作,但在标签中添加斜杠。

<\S*s\S*c\S*r\S*i\S*p\S*t\S*>

从本质上讲,这将使<script>与每个字符内的空格数量可变。

答案 1 :(得分:0)

以下regex可以删除字符串中的所有脚本。

$description = preg_replace('/<s\s?c\s?r\s?i\s?p\s?t\s?>.*<\/s\s?c\s?r\s?i\s?p\s?t\s?>/gim', '', $description)