【发布时间】:2016-02-12 10:39:30
【问题描述】:
我知道网上有很多关于它的东西,但我正在努力解决一个我没有遇到过任何人询问它的特定问题。
所以我构建了这个正则表达式,用于在 href/src 属性中搜索 url:
\s(?:href|src)\s*=\s*(["']??)\s*([^"']+)(?:\s*\1)[^>]*>
问题是它也匹配这样的东西:
var a="";
a += "<a href=\""+d.y+"\">";
我试图想出一个解决方案来解决如何不得到这些误报,但我真的做不到,所以我在这里寻求帮助。
请注意,我不是在寻找解析 dom 的目的,只是为了做到这一点,只有正则表达式
【问题讨论】:
-
你在学习正则表达式吗?我认为您还应该学习何时使用以及何时避免使用它们。你有 HTML,使用 DOM 解析器从 HTML 文档中获取数据。
-
@WiktorStribiżew 我正在使用正则表达式,因为我正在使用 href/src 属性之外的其他正则表达式找到更多 url,否则无法使用 dom 解析器找到,这只是我打算放入的正则表达式在将从 html/css/js/other 文件中获取的 'discover' 正则表达式 url 数组中。这就是我使用正则表达式的原因
-
那么请在问题中说清楚,你在做什么,使用什么工具,而不仅仅是在href/src属性中搜索url
-
@WiktorStribiżew 它只会增加问题的噪音,我不会寻求有关如何制作其他正则表达式来查找其他网址的帮助,我要问的只是关于特定问题的有针对性的问题正则表达式以及如何不从中得到误报。最终目标与问题无关
-
只是向您展示如何使用 dom 操作获取 src 和 href:
window.onload=function() { var srcs = document.querySelectorAll('[src]'); var hrefs = document.querySelectorAll('[href]'); console.log(srcs,hrefs) }jsfiddle.net/mplungjan/vdbvtsy4
标签: javascript html regex url uri