Estoy aprendiendo a usar esto de las expresiones regulares e hice una que pueda validar los siguientes tipos de datos:
192.168.1.0
192.168.1.0/24
192.168.1.0 255.255.255.0
Para ello me salio la siguiente expresión regular:
Código:
^(\d{1,3}\.){3}\d{1,3}(( (\d{1,3}\.){3}\d{1,3})|(/\d{1,2}))?$
Y la utilice en un código PHP de la siguiente manera:
Código PHP:
Ver originalif (!preg_match('/^(\d{1,3}\.){3}\d{1,3}(( (\d{1,3}\.){3}\d{1,3})|(/\d{1,2}))?$/', $info)) { echo '<div class="alert">Valor invalido</div>';
echo '<div>Usa la IP y la máscara de subred CDIR: 10.0.0.1/22</div>';
echo '<div>O usa la IP y la máscara de subred: 10.0.0.1 255.255.255.0</div>';
}
Lamentablemente siempre que pongo un valor valido siempre me da que no es así :S, me manda el siguiente error:
Warning: preg_match() [function.preg-match]: Unknown modifier '\' in C:\Servidor\htdocs\calcip\class_calcip.php on line 5
Incluso probé mi expresión en esta web:
http://rejex.heroku.com/ y si me valida correcto! No tengo la más mínima idea de porque en mi código no funciona como debe!
No entiendo porque no me funciona :S