如何使用JavaScript从文本中提取第一个URL

3

I have this regexp

function isValidURL(text) {

        var RegExp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;

        ......

    }

请使用http://google.com,如果没有找到,请在http://stackoverflow.com上提问。
我需要从下面的文本中仅提取第一个网址。(http://google.com)
作为url返回

3
OFF: 你最好使用文本请使用http://google.com,如果没有找到任何内容,请在http://stackoverflow.com上提问 :) - VisioN
2个回答

2
你是指像这样的东西吗:
var text = "Please visit http://stackoverflow.com and ask your question, or use http://google.com";

var match = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/​​​​​​​​​​​​.exec(text)​​​​​​​;

​console.log(match[0]);​

DEMO: http://jsfiddle.net/yh5Zv/


但是如果没有空格,例如:http://stackoverflow.comhttp://google.com,如何获取第一个? - borma425

1

我认为您可以使用这个(前提是在文本中除了网址本身外没有“://”):

var text = "Please visit http://stackoverflow.com and ask your question, or use http://google.com";

var text_split = text.split('://'); 
var text_req = text_split[1].(" "); // splitting with blank space 

var finalURL = "http://" + test_req[0];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接