You are here
Validación de expresiones regulares en PHP Sin categoría 

Validación de expresiones regulares en PHP

Validación de expresiones regulares en PHP

La Validación de expresiones regulares en PHP es una preocupación común para los webmasters de todo el mundo. Si alguien está ingresando la información en el formulario, es necesario validarlo! Pero ¿cuál es la forma más sencilla de hacerlo? Bueno, cada vez que se trata de grandes cantidades de patrones de texto que deben seguirse, Siempre a su vez a las expresiones regulares.

Las expresiones regulares son una forma de seguir un patrón que defina. Si bien no voy a enseñar a Regex, voy a decirle sobre expresiones regulares en PHP. PHP utiliza predominantemente el sabor de expresiones regulares de Perl que hace.

Esta es la razón por la función de llevar a cabo una expresión regular en PHP es preg_match. Realizar una comparación de expresiones regulares de Perl, conseguirlo? De todos modos, hay ciertos modificadores que se pueden agregar al patrón en PHP para afectar a su rendimiento.

Por ejemplo, la adición de “i” hace que sea sensible a mayúsculas. Tenía que hacer esto por el patrón de dirección de correo electrónico, ya que acorta el patrón de expresión para facilitar la lectura en el supuesto de que se utiliza con mayúsculas y minúsculas.

Entonces, no es el modificador “m” que tratará una línea de asunto múltiple como realidad múltiple rayado. De lo contrario, los saltos de línea (n) se ignoran y los anclajes (^ $) y asumirán te refieres al principio y al final de todo el tema. “s” es útil si usted está constantemente utilizando un patrón de expresión que no se inicia con ^ y no tiene un carácter de partida consistente.

Con el fin de determinar si el nombre de usuario, la contraseña y la contraseña de verificación son correctos, que asumen que sólo caracteres alfanuméricos están permitidos.

Por lo tanto, en lugar de buscar todo lo que podría ser un carácter incorrecto potencial, busco caracteres que no sean alfanuméricos. Esto se indica por el carácter ^ en la clase de caracteres [^ A-Za-z0-9].

Luego, más adelante, si hay una coincidencia, ya sé que hay un carácter no válido en el campo. También hay que tener en cuenta que hay metacaracteres que necesitan escaparon en expresiones regulares. Recomiendo preg_quote para esto. Los valores de correo electrónico y URL son más difíciles, sobre todo porque se trata de normas que son difíciles de definir.

Por ejemplo, en regular-expressions.info, todo un largo debate ha entrado en la expresión regular de correo electrónico. Técnicamente, una dirección válida de correo electrónico puede contener apóstrofes.Para la mayoría de las direcciones de correo electrónico, lo que se indica será válida. URLs contienen un problema similar.

Dominios de nivel superior son numerosas, y una lista es difícil de agregarse. Las personas también tienen una tendencia a decir simplemente “phpjabbers.com” en lugar de “http://phpjabbers.com”.

También hay situaciones en las que el dominio de nivel superior contiene un valor para el país, así como “google.co.uk”. Yo no puedo aconsejar que intentan incluir tanto como sea posible. Si trata de atender a todo el mundo, se termina de pasar tanto tiempo en la validación de que ya no es factible.

Validar la entrada del usuario de acuerdo a lo que es conveniente en su código, no de acuerdo a lo que van a entrar. Además, la expresión regular no es la solución a todos los problemas (aunque es para la mayoría). Si está validando algo que tiene muchas excepciones o es extremadamente complicado, se convierte en una tarea.

Ni siquiera puedo imaginar tratando de formatear fechas y horas. Es a las 12:00 del mediodía o la medianoche? 12:60 es válida? ¿Qué hay de 17:00? ¿Se requiere AM y PM para ser introducidos? ¿Tiene 3 significa lo mismo que 3:00? Estas cosas son mejor dejar a los seres humanos o algún otro método que se puede concebir.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
$un = $_POST["user"];
$pw = $_POST["pass"];
$pw2 = $_POST["pass2"];
$em = $_POST["email"];
$url = $_POST["url"];
$info = array($un, $pw, $pw2, $em, $url);
foreach ($info as $idx => $unit) {
        switch ($idx) {
                case 4:
$rgx = "/^((ftp|http|https)://(w+:{0,1}w*@)?)?(S+)(:[0-9]+)?(/|/([w#!:.?+=&%@!-/]))?$/";
                break;
                case 3:
                        $rgx = "/^[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}$/i";
                break;
                case 2:
                        //read below
                        $rgx = "/[^A-Za-z0-9]+/";
                break;
                case 1:
                        //read below
                        $rgx = "/[^A-Za-z0-9]+/";
                break;
                case 0:
                        //if characters are NOT normal
                        $rgx = "/[^A-Za-z0-9]+/";
                break;
                default:
                        echo "???";
                        die("$unit ?");
                break;
        }
        $n = preg_match($rgx, $unit, $matches);
        if ( ($idx == 0) || ($idx == 1) || ($idx == 2) ){
                if ($n) {
                        echo "Bad Characters in $unit; Alphanumeric only";
                }
        } else {
                if ($n == 0) {
                        echo "Incorrect Format in $unit; Enter Valid Info";
                }
        }
}
?>

Si quieres seguir aprendiendo con nosotros, puedes ingresar a nuestros

Cursos y Diplomados de Tecnología Web visita www.uneweb.edu.ve  para más información

Related posts