Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用正则表达式在html中查找url_Javascript_Html_Regex_Url_Uri - Fatal编程技术网

Javascript 使用正则表达式在html中查找url

Javascript 使用正则表达式在html中查找url,javascript,html,regex,url,uri,Javascript,Html,Regex,Url,Uri,我知道网上有很多关于它的东西,但我正在努力克服一个具体的问题,我没有遇到任何人问起这个问题 因此,我构建了一个正则表达式,用于搜索href/src属性中的URL: \s(?:href|src)\s*=\s*(["']??)\s*([^"']+)(?:\s*\1)[^>]*> 问题是它也在匹配这样的东西: var a=""; a += "<a href=\""+d.y+"\">"; var a=”“; a+=”; 我试着想出一个解决办法,如何避免这些误报,但我真的做

我知道网上有很多关于它的东西,但我正在努力克服一个具体的问题,我没有遇到任何人问起这个问题

因此,我构建了一个正则表达式,用于搜索href/src属性中的URL:

\s(?:href|src)\s*=\s*(["']??)\s*([^"']+)(?:\s*\1)[^>]*>
问题是它也在匹配这样的东西:

var a="";
a += "<a  href=\""+d.y+"\">";
var a=”“;
a+=”;
我试着想出一个解决办法,如何避免这些误报,但我真的做不到,所以我在这里寻求帮助


请注意,我并不是为了解析dom而寻找它,只有regex

我最终重写了regex,使它期望0个或更多属性后跟src/href属性,这样像我问题中的错误肯定就不算了

这是我的新正则表达式:

\s(?:src|href)\s*=\s*(?:["']?\s*([^"'>]+)\s*["']?)(?:\s+[^"'>\s]+(?:\s*=\s*["']?[^"'>]*["']?)?)*\s*\/?>

最后,我重写了正则表达式,使其预期0个或更多属性后跟src/href属性,这样像我的问题中那样的误报就不算了

这是我的新正则表达式:

\s(?:src|href)\s*=\s*(?:["']?\s*([^"'>]+)\s*["']?)(?:\s+[^"'>\s]+(?:\s*=\s*["']?[^"'>]*["']?)?)*\s*\/?>

你在学习正则表达式吗?我认为你也应该学会什么时候使用,什么时候避免它们。如果您有HTML,请使用DOM解析器从HTML文档中获取数据。@WiktorStribiżew我使用正则表达式是因为我在href/src属性之外找到了更多其他正则表达式的URL,否则无法使用DOM解析器找到,这只是一个正则表达式,我计划将它放入一个“discover”正则表达式的URL数组中,这些URL将从html/css/js/其他文件中获取。这就是我使用regexThen的原因。请在问题中明确说明,您在做什么,使用什么工具,而不仅仅是在href/src中搜索URLattributes@WiktorStribiżew这只会增加问题的噪音,我不寻求帮助如何使其他正则表达式用于查找其他URL,我所要问的是关于特定正则表达式的有针对性的问题,以及如何避免从中得到误报。最终目标与这个问题完全无关,只是向您展示如何使用dom操作获取src和hrefs:
window.onload=function(){var srcs=document.queryselectoral('[src]');var hrefs=document.queryselectoral('[href]');console.log(srcs,hrefs)}
您在学习正则表达式吗?我认为你也应该学会什么时候使用,什么时候避免它们。如果您有HTML,请使用DOM解析器从HTML文档中获取数据。@WiktorStribiżew我使用正则表达式是因为我在href/src属性之外找到了更多其他正则表达式的URL,否则无法使用DOM解析器找到,这只是一个正则表达式,我计划将它放入一个“discover”正则表达式的URL数组中,这些URL将从html/css/js/其他文件中获取。这就是我使用regexThen的原因。请在问题中明确说明,您在做什么,使用什么工具,而不仅仅是在href/src中搜索URLattributes@WiktorStribiżew这只会增加问题的噪音,我不寻求帮助如何使其他正则表达式用于查找其他URL,我所要问的是关于特定正则表达式的有针对性的问题,以及如何避免从中得到误报。最终目标与这个问题完全无关,只是向您展示如何使用dom操作获取src和hrefs:
window.onload=function(){var srcs=document.queryselectoral('[src]');var hrefs=document.queryselectoral('[href]');console.log(srcs,hrefs)}