Je dois vérifier l'adresse Web, en utilisant une expression régulière.
Si l'URL de type utilisateur comme p>
J'ai une expression régulière comme p> 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 p> p>
6 Réponses :
Vous pouvez faire le http: // code> en option et aussi le S code> dans https code> en option comme:
Il s'agit d'une expression assez élémentaire pour tester les noms de domaine: doit correspondre: p>
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 code> est un nom d'hôte valide, juste qui a un non-sens TLD.
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>
<?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";
}
?>
Essayez ce qui suit à la place:
filter_var($your_variable, FILTER_VALIDATE_URL);
La fonction parse_url () est également utile dans ce contexte.
Vous pouvez également utiliser ce modèle également:
http://www.google.com https://www.google.com www.google.com google.com google.in
www.demo.com p>
http://foo.co.uk/ p>
blockQuote> (https ?: \ / \ /)? ([\ w \ d] + \.)? [\ w \ d] + \ w + \ /?. + CODE> p>
Voir Mathiasbynens.be/demo/url-regex