【发布时间】:2013-12-03 15:37:15
【问题描述】:
我有一个名为 $articleText 的变量,它包含 html 代码。 <script> 和 <style> html 元素中有 script 和 style 代码。我想扫描$articleText 并删除这些代码。如果我还可以删除实际的 html 元素 <script>、</script>、<style> 和 </style>,我也会这样做。
我想我需要使用正则表达式,但我不熟练。
有人可以帮忙吗?
我希望我可以提供一些代码,但就像我说的我不擅长正则表达式,所以我没有任何东西可以展示。
我不能使用 DOM。我需要专门针对这些特定标签使用正则表达式
【问题讨论】:
-
对于那些认为正则表达式不可能与 html 和谐相处的人,这里有一个来自反反对者部门
<(?P<tagname>style|script)[^>]*>(?:(?:(?!<(?&tagname)[^>]*>|</(?&tagname)>).)|(?R))*</(?&tagname)>的解决方案。请参阅带有一些解释的demo。用有效的 html 打破它,我会在一个答案上奖励你 50 代表(赏金)。 -
@HamZa - 用
<style> <!-- </style> --> *{ display: none } </style>测试它 -
@Ωmega 必须保留my promise 大声笑
-
@HamZa 出于好奇,为什么要如此努力地去做从根本上是不好的做法?你以为你把它锁起来了,欧米茄一口气把它弄坏了。这将不断发生,一遍又一遍。这就是为什么人们根本不在 HTML 上使用 RegEx。反对它的建议不是狂热的编程,它是基于这样一个事实,即你正在发现困难的方式——因为 HTML 不是一种常规语言,所以有太多潜在的问题。
-
@HamZa 我在我的个人资料中说得对:我反对使用真的很酷的东西 X,因为它“为你做所有的事情!!!111”,buuut....在这种情况下, DomDocument 是一个非常酷的东西。只要你在这方面的工作是本着有趣和学习的精神,那么我同意。 [讽刺]我知道我的认可对你很重要[/讽刺]:P
标签: javascript php jquery html regex