2011-12-28 88 views
4

我想驗證網址。 它應該接受:如何驗證網址?

http://google.com 

http://www.google.com 

www.google.com 

google.com 

我指Regex to match URL

但它不支持google.com

+0

你已經指出了幾個答案的問題。你使用哪個正則表達式? – 2011-12-28 19:16:08

+0

@ discky-我認爲你的回答在Tom van der Woerdt和我所推薦的兩者之間。湯姆的建議將預先安裝「http」,如果它缺少,我的建議將驗證URL的其餘部分。唯一的問題是,如果你需要「https」或「ftp」,那麼用戶需要指定,因此最好對它們進行驗證,以輸入正確的前綴。 – 2011-12-28 19:25:11

+0

你正在使用jQuery,jQuery有URL驗證正則表達式例程IIRC – fge 2011-12-28 19:33:26

回答

3

如果不存在然後測試,只需加上http://即可。

if (inputURL.substring(0,7) != 'http://' && inputURL.substring(0,8) != 'https://') { 
    inputURL = 'http://' + inputURL; 
} 

沒有大型圖書館需要或任何東西,只是幾行代碼。

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

我不認爲你理解這個問題。 – 2011-12-28 19:17:23

+2

@Tom:那有幫助嗎? – 2011-12-28 19:18:28

+0

我只是說這不能回答這個問題。 – 2011-12-28 19:20:16

0

這是一個更好的辦法,我認爲應該用來驗證網址

reg = /https?:\/\/w{0,3}\w*?\.(\w*?\.)?\w{2,3}\S*|www\.(\w*?\.)?\w*?\.\w{2,3}\S*|(\w*?\.)?\w*?\.\w{2,3}[\/\?]\S*/ 
reg.test('www.google.com') # will return true 
reg.test('www.google')  # will return false 

讓我知道如果你還沒有得到它正確的。