需要一种在PHP中使用Regex匹配这些字符串的方法

时间:2014-02-26 00:41:07

标签: php regex

是否有正则表达式可以匹配以下任何一种?

  • '<'+'script>'
  • '<s'+'cript>'
  • '<script'+'>'
  • '</'+'script>'
  • '</scr' + 'ipt>'
  • '<script></scrip'+'t>'
  • '<script type=text/javascript src="http://..."></scrip'+'t>'

我需要这样做,因为如果HTML中包含这些字符串,HTML Tidy会产生错误。我想使用preg_replace()删除它们。

2 个答案:

答案 0 :(得分:0)

哇,有趣,但我认为各种解析器将是一种更可靠的解决方案。

以下的正则表达式令人憎恶,但它与你的内容相符:

'</?(?:'\+')?(?=s).+(?=c).(?=r).+(?=i).+(?=p).+(?=t).+>'

它也会匹配你不想要的各种标签,我把它留给你:

'<scdcdacacapt type=text/javascript src="http://..."></cdscdcss'+'t>'

这是因为type属性中的javascript字符串,因此如果您在任何标记中都有单词javascript,那么它将匹配:(

希望这是你的起点

答案 1 :(得分:-1)

使用'\x3cscript\x3e'代替'&lt;script&gt;'