<form action="index.php" method="post">
<input type="text" name="message" id="message" />
<input type="submit" name="ok" id="ok" value="Regex moi donc ça !" />
</form>
<?php
if(isset($_POST['ok']))
{
if(preg_match("#^((https?://+|ftp://+)?)((w{3}\.)?)((\w+-?)+)\.[a-z]{2,4}(/?)((.+)?)$#", $_POST['message']))
{
echo '<p style="color:green;font-weight:bold;">PERFECT URL</p>';
}
elseif(preg_match("#^0[1-9]([-.]?[0-9]{2}){4}$#", $_POST['message']))
{
echo '<p style="color:green;font-weight:bold;">PERFECT TEL</p>';
}
elseif(preg_match("#^[a-z0-9.-_]+@[a-z0-9.-_]{2,}\.[a-z.]{2,4}$#", $_POST['message']))
{
echo '<p style="color:green;font-weight:bold;">PERFECT MAIL</p>';
}
else{echo'<p style="color:red;font-weight:bold;">MIIIIIIIIIIIINCE</p>';}
}
?>
Voilà mon code pour tester si le texte entré est un mail, un url ou alors un numéro de téléphone. Si vous avez des améliorations, notamment sur la regex pour l'url, n'hésitez pas à m'en faire part.