Foros del Web » Programando para Internet » PHP »

preg_match que acepte un tildes

Estas en el tema de preg_match que acepte un tildes en el foro de PHP en Foros del Web. Hola, necesito que me echéis un cable, tengo la siguiente cadena para identificar si una variable es alpha: if (preg_match("/^[a-z]+$/i", $value)) { return true; } ...
  #1 (permalink)  
Antiguo 31/10/2005, 06:11
 
Fecha de Ingreso: mayo-2004
Mensajes: 89
Antigüedad: 20 años, 6 meses
Puntos: 0
Exclamación preg_match que acepte un tildes

Hola, necesito que me echéis un cable, tengo la siguiente cadena para identificar si una variable es alpha:

if (preg_match("/^[a-z]+$/i", $value))
{
return true;
}
else
{
return false;
}

El problema esque si la cadena contiene una tilde, se devuelve false.
Como cambio el preg_match para que también acepte tildes?.

Un saludo!.
  #2 (permalink)  
Antiguo 13/11/2005, 23:51
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 11 meses
Puntos: 5
Puedes probar lo siguiente:

En primer lugar ejecuta este script en tu servidor:
Código PHP:
<?php
print setlocale(LC_ALL0);
?>
Y comprobar que para LC_CTYPE lo tienes efectivamente en Spanish_spain.

Si no fuese así y dependiendo del sistema operativo en que se encuentre php debes de establecer la información de localización a español:
Código PHP:
<tt>
<?php
print "antes:".(setlocale(LC_ALL0))."<br />";
setlocale(LC_ALL"es_ES");
// para windows sería : setlocale(LC_ALL, "esp");

// vuelves a llamar a setlocale pasando como segundo argumento 0
// para ver si cambió la localización...
print "ahora:".setlocale(LC_ALL0)."<br />";
?>
</tt>
Y luego en la expresión regular referenciarías las cadenas con [[:alpha]] , por ejemplo
Código PHP:
function alphaTildes($cadena)
{
return (
preg_match("/^[[:alpha:]]+$/i",$cadena));
}
print 
alphaTildes("holá");  // DEBE DAR TRUE 1
print alphaTildes("holá1"); // DEBE DAR FALSE 0
print alphaTildes("hola");  // DEBE DAR TRUE 1
print alphaTildes("ho22222éílá");  // DEBE DAR FALSE 0 
A ver si hay suerte y te funciona, la verdad es que a mi me costó averiguarlo, porque me pidieron un buscador que diferenciase por tíldes :S

Salu2 ;) (te recomiendo que hagas algunas pruebas por ejemplo con acentos vacios o con mayúsculas acentuadas por si acaso ;) )
__________________
[+]
[+]
  #3 (permalink)  
Antiguo 14/11/2005, 09:44
 
Fecha de Ingreso: mayo-2004
Mensajes: 89
Antigüedad: 20 años, 6 meses
Puntos: 0
gracias ......

gracias voy a probarlo, un saludo
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 22:08.