2012-05-27 63 views
2

我有這樣的正則表達式如何從文本使用JavaScript只提取第一url

function isValidURL(text) { 

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

     ...... 

    } 

和文字是:請用http://google.com或者如果沒有發現問你對http://stackoverflow.com

的問題,我需要提取只有第一個URL來自下面的文本。 (http://google.com)

回報網址

+3

*關閉:*您最好使用文本'請使用http://google.com或者如果沒有發現任何問題,請訪問http:// stackoverflow.com :) :) – VisioN

回答

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/

+0

太好了,謝謝! –

+0

不客氣:) – VisioN

+2

如何當url只是www.stackoverflow.com(沒有http:// ...),甚至當url看起來像stackoverflow.com – medBo

0

我想你可以使用這個(只要你沒有:/ /在你的文本除了url本身): -

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]; 
+0

我需要一個有效的URL正則表達式。感謝您的幫助:) –