2010-03-22 5 views
8

Je dois vérifier l'adresse Web en utilisant une expression régulière.Expression régulière pour la vérification de l'URL du site Web

si l'URL de type utilisateur comme

  1. www.test.com
  2. http://www.test.com
  3. https://www.test.com

j'ai une expression régulière comme

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

mais ne permettra que la deuxième option seulement. Comment puis-je modifier l'expression régulière de sorte que, il devrait accepter 1ère et 3ème option aussi

+0

Voir https: // mathiasbynens .be/demo/url-regex –

Répondre

21

C'est une expression assez basique pour les noms de domaine d'essai:

@^(http\:\/\/|https\:\/\/)?([a-z0-9][a-z0-9\-]*\.)+[a-z0-9][a-z0-9\-]*[email protected] 

doit correspondre:

domain.com 
www.domain.com 
http://domain.com 
https://domain.com 
+4

Notez que cette réponse ne correspond pas aux lettres majuscules. – Turtle

+3

J'ai ajouté le petit "i" à la fin du motif il y a quelques minutes. Cela devrait le réparer. –

+1

Pour .Net, c'est (? I: (http \: \/\/| https \: \/\ /)? ([A-z0-9] [a-z0-9 \ -] * \.) + [a-z0-9] [a-z0-9 \ -] * $) – Hong

1

Vous pouvez faire le http:// en option et aussi la s en https facultatif:

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

Utilisez le programme suivant pour valider l'URL du site Web.

Il validera ce qui suit et toute URL de site Web valide.

  1. www.test.com
  2. http://www.test.com
  3. https://www.test.com
 

    <?php 
      $string_url="https://www.test.com"; 
      $reg_exp = "/^(http(s?):\/\/)?(www\.)+[a-zA-Z0-9\.\-\_]+(\.[a-zA-Z]{2,3})+(\/[a-zA-Z0-9\_\-\s\.\/\?\%\#\&\=]*)?$/"; 
      if(preg_match($reg_exp, $string_url) == TRUE){ 
      echo "URL is valid format"; 
      } 
      else{ 
      echo "URL is invalid format"; 
      } 
    ?> 

 
0

Essayez les options suivantes à la place:

filter_var($your_variable, FILTER_VALIDATE_URL); 
+0

la fonction parse_url() est également utile dans ce contexte. –

1

Vous pouvez utiliser ce modèle aussi:

(http(s)?://)?([\w-]+\.)+[\w-]+(/[\w- ;,./?%&=]*)? 

Cela fonctionne pour la correspondance:

http://www.google.com 
https://www.google.com 
www.google.com 
google.com 
google.in 

modèle simple pour la correspondance.

Espérons que cela aidera quelqu'un !!!

+0

a travaillé pour moi. – IamKarim1992

1

Motif

(https?:\/\/)?([\w\d]+\.)?[\w\d]+\.\w+\/?.+

Cela fonctionne pour la correspondance:

www.demo.com

http://foo.co.uk/

4
(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9]\.[^\s]{2,}) 

correspondront aux cas suivants:

ne correspond pas à ce qui suit:

Questions connexes