2011-11-24 68 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