2011-11-24 4 views
0

Possible en double:
Regex to match URLexpressions régulières comment valider une URL

j'ai écrit une expression régulière pour valider uniquement les modèles d'URL suivants

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

Quelqu'un peut-il me donner une expression régulière?

Il y a une erreur dans l'expression rationnelle que j'avais l'habitude de faire, quelqu'un peut-il y remédier?

/^((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

Qu'est-ce qui se passe quand vous essayez? – jmaynard

+0

vous devez inclure l'erreur – barlop

+0

il correspondait 1,2,3,4 que vous avez mentionné (bien que je n'ai pas testé en javascript). Il y a une erreur, je suppose, en ce que 4 ne devrait pas être apparié. Mais vous voulez que cela corresponde à 4, semble-t-il. Peut-être avez-vous trouvé que cela ne correspondait pas à l'un d'entre eux, alors montrez l'erreur. – barlop

Répondre

2

Essayez cette expression:

^(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

Essayez ceci:

 
$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

bien je suis à la recherche de javascript regex. Si nous avons tapé abcd.abcd, il va échouer – Kalanamith