2011-11-24 83 views
0

可能重複:
Regex to match URL正則表達式如何驗證URL

我寫了一個正則表達式只驗證以下網址模式

  1. http://www.abc.com
  2. www.abc.com
  3. abc.com
  4. http.www.abc.com

誰能給我一個正則表達式?

在我用來做它的正則表達式中有一些錯誤,任何人都可以修復它?

/^((http|http|HTTP|HTTP):\/\/+(www|WWW\.)?[A-Za-z0-9\-\.]{1,}\.[A-Za-z])|((www|WWW\.)?[A- Za-z0-9\-\.]{1,}\.[A-Za-z])/i.test(value); 
+0

會發生什麼事,當你嘗試了嗎? – jmaynard

+0

你應該包括錯誤 – barlop

+0

它匹配你提到的1,2,3,4(儘管我沒有在javascript中測試)。我猜想有一個錯誤,因爲4不應該匹配。但是你想讓它看起來與4匹配。也許你發現它與其中一個不匹配,然後顯示錯誤。 – barlop

回答

2

試試這個表達式:

^(http(?:s)?\:\/\/[a-zA-Z0-9\-]+(?:\.[a-zA-Z0-9\-]+)*\.[a-zA-Z]{2,6}(?:\/?|(?:\/[\w\-]+)*)(?:\/?|\/\w+\.[a-zA-Z]{2,4}(?:\?[\w]+\=[\w\-]+)?)?(?:\&[\w]+\=[\w\-]+)*)$ 
0

試試這個:

 
$url = "http://something.com/"; 
if (preg_match('/^(http|https|ftp)://([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):?(d+)?/?/i', $url)) { 
    echo "Your url is ok."; 
} else { 
    echo "Wrong url."; 
} 
+0

以及我正在尋找JavaScript的正則表達式。如果我們輸入abcd.abcd,它會失敗 – Kalanamith