Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/08/2009, 21:45
Avatar de ricardoernes
ricardoernes
 
Fecha de Ingreso: agosto-2009
Ubicación: Miranda
Mensajes: 188
Antigüedad: 15 años, 6 meses
Puntos: 4
Información [APORTE] Validaciones Regulares

buenas buenas... validaciones regulares? a veces se convienten en un caos, pues un aporte :

Con la ayuda del amigo abimaelrc (http://www.forosdelweb.com/miembros/abimaelrc/), algunos aportes (http://www.forosdelweb.com/f18/aport...s-pcre-646110/) y otras investigaciones...... concluyo:


Código PHP:
[0-9// Coincide con una cadena que contenga cualquier
// número entre el 0 y el 9

[^0-9// Coincide con una cadena que NO contenga ningun
// número

[A-Z// Coincide con cualquier carácter alfabetico,
// en mayúsculas. No incluye numeros.

[a-z// Como el anterior, en minúsculas

[a-Z// Cualquier carácter alfabético, mayusculas o minusculas


Una cuestión a recordar es que las reglas de sintaxis de las expresiones regulares no se aplican igual dentro de los corchetes. Por ejemplo, el metacarácter ^ no sirve aqui de ancla, sino de caracter negador. Tampoco es necesario escapar todos los metacaracteres con la barra invertida. Solo será necesario escapar los siguientes metacaracteres: ] \ ^ -

El resto de metacaracteres pueden incluirse ya que son considerados -dentro de los corchetescaracteres normales.

Como estos patrones se usan una y otra vezhay atajos:

// atajo equivale a significado

[0-9// numeros de 0 a 9
[^0-9// el contrario de \d

[0-9A-Za-z// cualquier numero o letra
[^0-9A-Za-z// contrario de \w, un carácter que no

// sea letra ni numero

tnr// espacio en blanco: incluye espacio,
// tabulador, nueva linea o retorno

[^ tnr// contrario de \s, cualquier carácter
// que no sea espacio en blanco

[[:alpha:]] // cualquier carácter alfabético aA - zZ.
[[:digit:]] // Cualquier número (entero) 0 - 9
[[:alnum:]] // Cualquier carácter alfanumérico aA zZ 0 9
[[:space:]] // espacio 

aun yo tampoco domino muy bien esto conceptos, mas sin embargo lo siguiente:

validación de un numero de cédula:

Código PHP:
!is_numeric($cedula// ejemplo 15444333 
de un nombre:

Código PHP:
!preg_match('/^([[:alpha:]]+\s?)+$/',$nombre//sin guiones José  Nuñez

!preg_match('/^([A-Za-záéíóúñ\-]+\s?)+$/',$nombre//con guiones José - Nuñez 
para las longitudes

Código PHP:
!(strlen($variable)>3//en este caso $variable debe tener minimo 4 caracteres 
para las fastidiosas pero muy valiosas estructuras de correos:

Código PHP:
!preg_match(
        
'/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2,6}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/i'//ejemplo  [email protected] 

para los nombre con numero

Código PHP:
!preg_match('/^[[:alpha:]]([[:alnum:]]+\s?)+$/'//sin guiones rj 45
!preg_match('/^[a-zA-Záéíóú]([a-zA-Z0-9áéíóú\-]+\s?)+$/'//con guiones rj - 45 


bueno hasta los momentos creo que esto es todo, eso es lo que tengo, bastante que costo, pero con las ayudas ya mencionadas se logro, gracias y espero les sirva en algun momento, que de seguro se que sera así, a mi me ha servido demasido

Última edición por ricardoernes; 11/08/2009 a las 12:19