Foros del Web » Programando para Internet » PHP »

Validaciones REGULARES

Estas en el tema de Validaciones REGULARES en el foro de PHP en Foros del Web. Hola, necesito ayuda con unas validaciones... quiero validar en primer lugar, el apellido de una persona, para que sólo introduzca letras y espacio ya que ...
  #1 (permalink)  
Antiguo 08/08/2009, 21:52
Avatar de ricardoernes  
Fecha de Ingreso: agosto-2009
Ubicación: Miranda
Mensajes: 188
Antigüedad: 14 años, 8 meses
Puntos: 4
Exclamación Validaciones REGULARES

Hola, necesito ayuda con unas validaciones... quiero validar en primer lugar,
el apellido de una persona, para que sólo introduzca letras y espacio ya que puede existir apellidos
(ejemplo: Di Mateo) que requieren espacios...

tengo lo sig:

Código PHP:
if (!preg_match('/[A-Za-z\s áéíóú-]/',$apellido))
{
//codigo

pero ese codigo acepta los espacios tambien al principio y esa no es la idea. Entonces mi pregunta es:

¿Cómo hago para que acepte espacios en blanco MENOS al principio del apellido?


Y otra cosita, tambien necesito validar el email pero las validaciones que he encontrado tienen ciertas fallas
ejemplo, acepta: [email protected] y pues sabemos esa ya no es una direccion de correo valida ya que debe comenzar es por una letra o un numero, si tengo un correo que empiece por numero tampoco me lo acepta.... es un rollo sinceramente esta validacion de este correo, de verdad requiero de su ayuda por favor !!!

para esa validacion tengo lo siguiente:

Código PHP:
            /*EMAIL*/
            
if (!preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$email) || ($email == ""))             
            {
                         
//codigo
            

  #2 (permalink)  
Antiguo 08/08/2009, 23:05
Avatar de De_la_Cuesta_13  
Fecha de Ingreso: abril-2009
Ubicación: Cali, Colombia.
Mensajes: 265
Antigüedad: 15 años
Puntos: 14
Respuesta: Validaciones REGULARES, ayuda por favor

Compañero sería mejor que validaras tu formulario antes de enviarlo, que después de enviado con php. Lo mejor sería que valides tu formulario con Javascript.
  #3 (permalink)  
Antiguo 08/08/2009, 23:07
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Validaciones REGULARES, ayuda por favor

Primera respuesta
Código PHP:
Ver original
  1. $texto = 'Di Mateo';
  2. preg_match('/^([A-Za-záéíóú\-]+\s?)+/i',$texto,$m);
  3. echo $m[0];

Segunda respuesta
Código PHP:
Ver original
  1. $texto = '[email protected]';
  2. 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',$texto,$m);
  3. echo $m[0];

Te sugiero que leas bien los tutoriales de Expresiones Regulares
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 08/08/2009, 23:28
Avatar de ricardoernes  
Fecha de Ingreso: agosto-2009
Ubicación: Miranda
Mensajes: 188
Antigüedad: 14 años, 8 meses
Puntos: 4
Cita:
Iniciado por De_la_Cuesta_13 Ver Mensaje
Compañero sería mejor que validaras tu formulario antes de enviarlo, que después de enviado con php. Lo mejor sería que valides tu formulario con Javascript.

ya tengo todo listo, solo me faltan esas dos correciones en esos campos, perderia dmm tiempo deshaciendo el trabajo que ya tengo

Cita:
Iniciado por abimaelrc Ver Mensaje
Primera respuesta
Código PHP:
Ver original
  1. $texto = 'Di Mateo';
  2. preg_match('/^([A-Za-záéíóú\-]+\s?)+/i',$texto,$m);
  3. echo $m[0];

Segunda respuesta
Código PHP:
Ver original
  1. $texto = '[email protected]';
  2. 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',$texto,$m);
  3. echo $m[0];

Te sugiero que leas bien los tutoriales de Expresiones Regulares
DIIIIIIIIIOS !!!!! tengo que estudiar esto !!!! de pana que gracias !!!!



EXCELENTE AYUDA !!!

Última edición por GatorV; 10/08/2009 a las 21:33
  #5 (permalink)  
Antiguo 08/08/2009, 23:44
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Validaciones REGULARES

Me falto en el primer codigo el simbolo de $

Código PHP:
Ver original
  1. $texto = 'Di Mateo';
  2. preg_match('/^([A-Za-záéíóú\-]+\s?)+$/',$texto,$m);
  3. echo $m[0];

En ninguno de los dos, no es necesario escribir la i al final, se la puedes quitar a las expresiones regulares
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 08/08/2009, 23:50
Avatar de ricardoernes  
Fecha de Ingreso: agosto-2009
Ubicación: Miranda
Mensajes: 188
Antigüedad: 14 años, 8 meses
Puntos: 4
Pregunta

Cita:
Iniciado por abimaelrc Ver Mensaje
Me falto en el primer codigo el simbolo de $

Código PHP:
Ver original
  1. $texto = 'Di Mateo';
  2. preg_match('/^([A-Za-záéíóú\-]+\s?)+$/',$texto,$m);
  3. echo $m[0];

En ninguno de los dos, no es necesario escribir la i al final, se la puedes quitar a las expresiones regulares
ok esta bien, gracias

aunq en lo de los correos se le puede dejar, pq lo guarda todo en minusula, no ?¿

en el apellido si se le puede kitar para que asi los distinta, ya que como es algo mas personal... yx ejemplo ya Di Mateo tiene dos mayusculas en uno

'/^([A-Za-záéíóúñ0-9\-]\s?)+$/' tengo esa expresion regular, y kiero que tambien me acepte numero pero que inicie con letras, por ejemplo 'RJ 45'

he probado varias y no logro resolver por ejemplo

'/[^0-9]^([A-Za-záéíóúñ\-]\s?)+$/' esta me acepta numero solo despues de las letras, pero no me funciona pq entonces me acepta espacioes en blanco y otros caracteres * / + -

tengo esta otra
'/\D^([A-Za-záéíóúñ\-]\s?)+$/'

esta menos q menos me funciona..... he estado revisando en la web pero no consigo como crearla pero nada.... espero su ayuda por favor

Última edición por GatorV; 10/08/2009 a las 21:35
  #7 (permalink)  
Antiguo 10/08/2009, 12:46
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Validaciones REGULARES

el simbolo de ^ debe ir siempre al principio. Trata de hacerlo de esta forma

Código PHP:
Ver original
  1. $texto = 'Di Mateo 2';
  2. preg_match('/^[a-zA-Záéíóú]([a-zA-Z0-9áéíóú\-]+\s?)+$/',$texto,$m);
  3. echo $m[0];
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 10/08/2009, 13:04
Avatar de ricardoernes  
Fecha de Ingreso: agosto-2009
Ubicación: Miranda
Mensajes: 188
Antigüedad: 14 años, 8 meses
Puntos: 4
De acuerdo

Cita:
Iniciado por abimaelrc Ver Mensaje
el simbolo de ^ debe ir siempre al principio. Trata de hacerlo de esta forma

Código PHP:
Ver original
  1. $texto = 'Di Mateo 2';
  2. preg_match('/^[a-zA-Záéíóú]([a-zA-Z0-9áéíóú\-]+\s?)+$/',$texto,$m);
  3. echo $m[0];
:o de nuevo gracias !!! ya tenia como una hora tratando de hacer y probaba de todo y nada.... gracias gracias !!!! ya medio empiezo a comprender como se pueden crear

Acabo de encontrar una falla en los preg_match de

Código PHP:
preg_match('/^[a-zA-Záéíóú]([a-zA-Z0-9áéíóú\-]+\s?)+$/',$texto,$m);

//me acepta guiones !!!


//logre hacer esta.... no me acepta los guiones pero... 
'/^[[:alpha:]]([[:alnum:]]+\s?+$/'
// pero no me acepta las acentuaciones

//y tengo esta y tampoco me acepta las acentuaciones

'/^([[:alpha:]]+\s?)+$/'



//intente haciendo esta combiancion pero no me funciono 

'/^([[:alpha:]]+\s)|(|á|é|í|ó|ú)+$/' 

alguna solucion ???

tengo las siguientes validaciones regulares

Código PHP:
Código PHP:
preg_match('/^[a-zA-Záéíóú]([a-zA-Z0-9áéíóú\-]+\s?)+$/',$texto,$m); 
//me acepta guiones, por lo tanto no me funciona josé - 45 = no correcto; correcto = josé 45


//logre hacer esta.... no me acepta los guiones esta bien, pero...
Código PHP:
'/^[[:alpha:]]([[:alnum:]]+\s?+$/' 
// pero no me acepta las acentuaciones me acepta jose 45 pero no me acepta josé 45

//y tengo esta y tampoco me acepta las acentuaciones

Código PHP:
'/^([[:alpha:]]+\s?)+$/' 


//intente haciendo esta combiancion pero tampoco me funciono

Código PHP:
'/^([[:alpha:]]+\s)|(|á|é|í|ó|ú)+$/' 

1era validacion acepte solo letras al inicio (acentuadas o no) y despues si el usuario quiere, solo número o mas letras(acentuadas o no), claro con sus respectivos especios en blanco, pero nada de * ni - ni eso. ejemplo = ñoño 34, ó josé programa, mascara 45, y cuestiones asi.

2da validacion solo acepte letras(acentuadas o no) sin -, ni /, ni * ni nada de eso y claro con ssu respectivos espacios tambien, ejemplo = josé andrés, roberto nuñez

alguna solucion ??? algun aporte, ya he chequeado otros post, pero coye, no domino mucho este tema, y se me ha hecho complicado de ante manos muuuchas gracias !!! se los agrazacos

RESUELTO Y TODO EN En siguiente APORTE... http://www.forosdelweb.com/f18/aport...7/#post3039737

RESUELTO Y TODO EN En siguiente APORTE... http://www.forosdelweb.com/f18/aport...7/#post3039737

Última edición por GatorV; 10/08/2009 a las 21:51
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:06.