Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.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检测网页上的url?_Javascript_Regex - Fatal编程技术网

如何使用javascript检测网页上的url?

如何使用javascript检测网页上的url?,javascript,regex,Javascript,Regex,我正在使用JQuery编写一个应用程序,其中我将脚本包含在网页的标题部分,页面的数据是动态的,来自数据库 现在我需要检测页面上的URL。它可以是锚定标记,也可以是简单的书面URL 为了检测URL,我正在使用此函数 function checkURL(value) { var urlregex = new RegExp( "^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.){0,1}([0-9A-Za-z]+\.)"); if

我正在使用JQuery编写一个应用程序,其中我将脚本包含在网页的标题部分,页面的数据是动态的,来自数据库

现在我需要检测页面上的URL。它可以是锚定标记,也可以是简单的书面URL

为了检测URL,我正在使用此函数

function checkURL(value) {
  var urlregex = new RegExp(
        "^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.){0,1}([0-9A-Za-z]+\.)");
  if(urlregex.test(value))
  {
    return(true);
  }
  return(false);
}
它工作正常,但如果URL没有www前缀,则会失败,例如myweb.com

请为我的代码推荐一个更好的正则表达式,它适用于所有有效的URL,包括子域


您还可以建议一种检测我网页上URL的最佳方法吗?

所有超链接都将以任何或等开头。考虑到这一点,只需将document.getElementsByTagName调用到数组即可。数组将保存所有链接内容。只需提取超链接,无论是直接还是从数组对象的属性。

感谢大家的编辑和thansk Felix Kling的使用完整链接,但仍然无法解决正则表达式问题。我只需要一个正则表达式,它可以验证几乎每个url(有或没有www.prefix),还可以验证子域。我不想验证ftp url的唯一简单通用web url