Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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
使用jQuery从字符串获取完整URL_Jquery_Regex_Url - Fatal编程技术网

使用jQuery从字符串获取完整URL

使用jQuery从字符串获取完整URL,jquery,regex,url,Jquery,Regex,Url,我试图从一个陷阱中找到URL。我想检查字符串是否包含任何URL 为此,我编写了代码: function get_url_from_string(str) { var searchText = str, urls = searchText.match(/\b(http|https)?(:\/\/)?(\S*)\.(\w{2,4})\b/ig); for (var i = 0, il = urls.length; i < il; i++)

我试图从一个陷阱中找到URL。我想检查字符串是否包含任何URL

为此,我编写了代码:

function get_url_from_string(str) {
        var searchText = str,
          urls = searchText.match(/\b(http|https)?(:\/\/)?(\S*)\.(\w{2,4})\b/ig);
         for (var i = 0, il = urls.length; i < il; i++) {
            var ur=urls[i];
        }
        return ur;

    }
函数从字符串(str)获取url{
var searchText=str,
URL=searchText.match(/\b(http | https)?(:\/\/)?(\S*)\.(\w{2,4})\b/ig);
for(var i=0,il=url.length;i
但它只返回URL,没有任何参数。例如,如果我通过:

嗨,看看这个

它只给了我

我想得到完整的网址。 我对正则表达式一无所知。 请帮忙。 谢谢

试试这个-

/\b(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?\s/
试试这个-

/\b(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?\s/

试试这个它对我很有效

      var url_regex = /(?:(?:https?|ftp):\/\/)?(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?/gi;
      var text = "some text string here!!";
      var urls_array = [];
      while ((urls = url_regex.exec(text)) !== null) {
                            urls_array.push(urls[0]);
                    }
此代码用于我的项目中


试试这个它对我很有效

      var url_regex = /(?:(?:https?|ftp):\/\/)?(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?/gi;
      var text = "some text string here!!";
      var urls_array = [];
      while ((urls = url_regex.exec(text)) !== null) {
                            urls_array.push(urls[0]);
                    }
此代码用于我的项目中

函数从字符串(str)获取url{
var searchText=str,
URL=searchText.match(/\b(http | https)?(:\/\/)?(\S*)\(\w{2,4})?(.*)\b/ig);
for(var i=0,il=url.length;i

点击这里
函数从字符串(str)获取url{
var searchText=str,
URL=searchText.match(/\b(http | https)?(:\/\/)?(\S*)\(\w{2,4})?(.*)\b/ig);
for(var i=0,il=url.length;i

点击这里

尝试它显示错误。这个
\(\w{2,4}
表示匹配一个
然后是
[a-zA-Z0-9}
的2-4个字符。所以你的表达式在
.com
结束。在
\w{2,4}
之后添加
\S*
将允许它继续运行,直到它碰到空白。我自己完成了
\b(http://)(\S*)\(\w{2,4})b.(\S*)
:)谢谢您的帮助。您还可以将
(http | https)
简化为`(https?)\。(\w{2,4}
表示匹配a
然后匹配
[a-zA-Z0-9]
的2-4个字符。因此您的表达式以
.com
结尾。在
之后添加
\S*{2,4}
将允许它继续运行,直到出现空白。我已经自己完成了
\b(http | https)?(:\/\/)?(\S*)\。(\w{2,4})\b.(\S*)
:)谢谢您的帮助。您还可以将
(http | https)?
简化为`(https?)?