Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Solo letras validar

Estas en el tema de Solo letras validar en el foro de PHP en Foros del Web. Saludos amigos del foro necesito su ayuda otra vez, pues intento validar un campo de texto para que solo se introduzcan cadenas de letras. El ...
  #1 (permalink)  
Antiguo 28/02/2014, 12:28
 
Fecha de Ingreso: agosto-2010
Mensajes: 125
Antigüedad: 13 años, 8 meses
Puntos: 0
Solo letras validar

Saludos amigos del foro necesito su ayuda otra vez, pues intento validar un campo de texto para que solo se introduzcan cadenas de letras.

El código siguiente cumple con esa función, solo si los numero son introducidos antes que las letras ejemplo 1234ABCD,(alerta de que se a introducido mal la cadena) todo lo contrario si se introduce ABCD1234 ( Alerta que si se introdujo correctamente la cadena). se agradece cualquier ayuda o sugerencia

Código PHP:
 $permitidos1 "ABCDEFGHIJKLMNOPQRSTUVWXYZ-_"
for (
$i=0$i<strlen($apellidopaterno); $i++){ 
if (
strpos($permitidos1substr($apellidopaterno$i,1))===false){ 
header("Location: ../foinsertaralumnos.php?error=3&id=$id");
return 
false;
exit;  

  #2 (permalink)  
Antiguo 28/02/2014, 14:59
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Solo letras validar

Con una sencilla expresión regular, puedes realizar esa validación y sin necesidad de utilizar bucles.

Código PHP:
Ver original
  1. $string1 = "ABC";
  2. $string2 = "1ABC";
  3. $string3 = "ABC1";
  4.  
  5. $pattern = "/^[A-Z-_]+\d?/i";
  6.  
  7. echo preg_match($pattern, $string1) ? "Bien" : "Mal"; //Imprime Bien
  8. echo preg_match($pattern, $string2) ? "Bien" : "Mal"; //Imprime Mal
  9. echo preg_match($pattern, $string3) ? "Bien" : "Mal"; //Imprime Bien

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 28/02/2014, 15:47
 
Fecha de Ingreso: agosto-2010
Mensajes: 125
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Solo letras validar

Gracias pro su respuesta, quedaría mas o menos así

¡Pero también necesito que imprima como malo ABC1, lo que intento es que la cadena no acepte nigua valor numérico solo letras... tampoco que acepte acentos


Cita:
$pattern = "/^[A-Z-_]+\d?/i";

if (preg_match($pattern, $apellidopaterno)){
header("Location: ../foinsertaralumnos.php?error=3&id=$id");
exit;
}
  #4 (permalink)  
Antiguo 28/02/2014, 16:02
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Solo letras validar

Cita:
Iniciado por famjaes Ver Mensaje
Pero también necesito que imprima como malo ABC1
Cita:
Iniciado por famjaes Ver Mensaje
si se introduce ABCD1234 ( Alerta que si se introdujo correctamente la cadena)
¡Decídete hombre!

Si solamente quieres que hayan letras y nada más que letras, basta con que la expresión regular sea así:

Código PHP:
Ver original
  1. $pattern = "/[A-Z]/i";

Por favor, analiza lo que te explico, no voy a hacer todo el trabajo por ti.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 28/02/2014, 17:02
 
Fecha de Ingreso: agosto-2010
Mensajes: 125
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Solo letras validar

entonces quedaría así ?


$pattern = "/[A-Z]/i";

if (preg_match($pattern, $apellidopaterno)){
header("Location: ../foinsertaralumnos.php?error=3&id=$id");
exit;
}
  #6 (permalink)  
Antiguo 28/02/2014, 19:05
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Solo letras validar

Si solamente quieres que contenga letras y nada más que letras, sin eñes ni tíldes, es lo correcto.

Saludos

EDITO:

Mejor hazlo así:

Código PHP:
Ver original
  1. $pattern = "/^[A-Za-z]*$/";
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 28/02/2014 a las 19:23
  #7 (permalink)  
Antiguo 28/02/2014, 19:30
 
Fecha de Ingreso: agosto-2010
Mensajes: 125
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Solo letras validar

una ultima duda, $pattern = "/^[A-Z]*$/"; me acepta la letra Ñ??
  #8 (permalink)  
Antiguo 28/02/2014, 19:53
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Solo letras validar

No. Tal y como te lo dije en la respuesta anterior, solamente acepta letras sin eñes ni tildes. Tienes que leer las acotaciones que te damos, no te limites a copiar y pegar el código o en el futuro nadie te ayudará.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #9 (permalink)  
Antiguo 28/02/2014, 20:34
 
Fecha de Ingreso: agosto-2010
Mensajes: 125
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Solo letras validar

gracias por su ayuda... leeré los enlaces que comenta saludos

Etiquetas: cadena, letras
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 00:31.