【发布时间】:2013-08-16 21:41:34
【问题描述】:
我正在尝试限制 Markdown 编辑器的 HTML 中锚标记可以使用的一些属性。这就是我现在拥有的:
/^(<a\shref="((https?|ftp):\/\/|\/)[-A-Za-z0-9+&@#\/%?=~_|!:,.;\(\)]+"(\stitle="[^"<>]+")?\s?>|<\/a>)$/i
这允许带有title 和href 属性的锚标记,但仅此而已。我还想添加target,但无论我尝试什么都没有用。
- 链接必须包含
href属性。 - 它可以包含
title属性,但不是必须的。 - 它可以包含
target属性,但不是必须的。
如何修改满足以上所有条件的正则表达式。
【问题讨论】:
-
你使用什么语言?
-
title = "xyz"(即=周围的空格)呢?如果属性以其他顺序出现怎么办? -
您不应该使用正则表达式解析 HTML。
-
不要使用正则表达式解析 HTML。使用适当的 HTML 解析模块。 您无法使用正则表达式可靠地解析 HTML,并且您将面临悲伤和挫败感。一旦 HTML 与您的期望发生变化,您的代码就会被破坏。有关如何使用已经编写、测试和调试的 PHP 模块正确解析 HTML 的示例,请参阅 htmlparsing.com/php。
标签: html regex html-parsing