12
votes

Expression régulière pour vérifier l'URL du site Web

Je dois vérifier l'adresse Web, en utilisant une expression régulière.

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 xxx

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


6 Réponses :


1
votes

Vous pouvez faire le http: // en option et aussi le S dans https en option comme: xxx


0 commentaires

24
votes

Il s'agit d'une expression assez élémentaire pour tester les noms de domaine: xxx

doit correspondre: xxx


5 commentaires

Notez que cette réponse ne correspondra pas aux lettres majuscules.


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


Pour .net, c'est (? I: (http \: \ / \ / | https \: \ / \ / \ /)? ([A-Z0-9] [A-Z0-9 \ -] * \.) + [A-Z0-9] [A-Z0-9 \ -] * $)


Ceci correspond à http: //www.akgkguuiop qui est une URL cassée


@Johnykutty Il ne vérifie pas si le TLD est valide. www.akgkguuiop est un nom d'hôte valide, juste qui a un non-sens TLD.



3
votes

Utilisez le programme suivant pour la validation de l'URL du site Web.

Il validera les URL suivantes et toute URL de site Web valide. P>

  1. www.test.com li>
  2. http://www.test.com li>
  3. https://www.test.com LI> OL>
    
        <?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 commentaires

0
votes

Essayez ce qui suit à la place:

filter_var($your_variable, FILTER_VALIDATE_URL);


1 commentaires

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



2
votes

Vous pouvez également utiliser ce modèle également:

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


0 commentaires

1
votes

motif

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

cela fonctionnera pour correspondre:

www.demo.com

http://foo.co.uk/


0 commentaires