Foros del Web » Programando para Internet » PHP »

detectar caracteres en una cadena

Estas en el tema de detectar caracteres en una cadena en el foro de PHP en Foros del Web. Buenas, Como puedo hacer para detectar en una cadena si lleva acentos o # y si es asi nos de un error. Saludos...
  #1 (permalink)  
Antiguo 06/03/2011, 13:01
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 5 meses
Puntos: 2
detectar caracteres en una cadena

Buenas,

Como puedo hacer para detectar en una cadena si lleva acentos o # y si es asi nos de un error.


Saludos
  #2 (permalink)  
Antiguo 06/03/2011, 13:02
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: detectar caracteres en una cadena

Con strpos, stripos, preg_match, etc.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 06/03/2011, 14:03
 
Fecha de Ingreso: enero-2010
Ubicación: Madrid
Mensajes: 18
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: detectar caracteres en una cadena

tambien peudes hacer esto

$string='cadena de texto con acentos';
$letrasilegales=array('á','é','í','ó','ú');
str_replace($letrasilegales,'',$string,$i);
if($i>0) echo 'error';
  #4 (permalink)  
Antiguo 06/03/2011, 14:30
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: detectar caracteres en una cadena

Cita:
Iniciado por abimaelrc Ver Mensaje
Con strpos, stripos, preg_match, etc.
con strpos no puedo detectar acentos.

Saludos
  #5 (permalink)  
Antiguo 06/03/2011, 15:09
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: detectar caracteres en una cadena

Usa entonces preg_match.
__________________
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 07/03/2011, 05:01
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: detectar caracteres en una cadena

Cita:
Iniciado por abimaelrc Ver Mensaje
Usa entonces preg_match.
Pues ahora estoy aplicando esta funcion, lo que me tube que leer las expreciones regulares porque no entendia muy bien como funcionaban.

Hice esta exprecion regular pero no me funciona muy bien.

$cadena="/[0-9a-zA-Z]{6,8}[^áéíóúÁÉÍÓÚÑñ@]/";

la idea es que mi cadene acepte lo siguiente.
-Numeros, letras, guiones con un minimo de 6 y maximo 8.

[0-9a-zA-Z]{6,8}

lo que no quiero que acepte:
-acentos , ñ y @
[^áéíóúÁÉÍÓÚÑñ@]

pero no me funciona del todo bien.

Saludos
  #7 (permalink)  
Antiguo 07/03/2011, 06:54
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: detectar caracteres en una cadena

Solo escribe aquello que debe aceptar y lo que no, no lo añadas.
Código PHP:
Ver original
  1. <?php
  2. $string = 'foobarbaz';
  3. if(preg_match('/^[A-Za-z0-9_]+$/', $string)){
  4.     echo 'Es correcto';
  5. }else{
  6.     echo 'Es incorrecto';
  7. }
  8.  
  9. $string = 'foobárbaz';
  10. if(preg_match('/^[A-Za-z0-9_]+$/', $string)){
  11.     echo 'Es correcto';
  12. }else{
  13.     echo 'Es incorrecto';
  14. }
__________________
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 07/03/2011, 08:08
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: detectar caracteres en una cadena

Cita:
Iniciado por abimaelrc Ver Mensaje
Solo escribe aquello que debe aceptar y lo que no, no lo añadas.
Código PHP:
Ver original
  1. <?php
  2. $string = 'foobarbaz';
  3. if(preg_match('/^[A-Za-z0-9_]+$/', $string)){
  4.     echo 'Es correcto';
  5. }else{
  6.     echo 'Es incorrecto';
  7. }
  8.  
  9. $string = 'foobárbaz';
  10. if(preg_match('/^[A-Za-z0-9_]+$/', $string)){
  11.     echo 'Es correcto';
  12. }else{
  13.     echo 'Es incorrecto';
  14. }
pues a mi no me fuincona no entiendo.

$cadena="/[0-9a-zA-Z]{4,8}/";

asi solo me tendira que aceptar numeros y letras con un minimo de 4 y maximo de 8.

pues me acepta los acentos y el maximo que es 8 si pongo 9 letras tambien me lo acepta.
  #9 (permalink)  
Antiguo 07/03/2011, 08:22
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: detectar caracteres en una cadena

Porque le estás indicando que encuentre dentro de la cadena caracteres entre 4 a 8 que sean lo que describiste y tu lo que quieres es que verifique de principio a fin que tenga esos caracteres. Para eso está los simbolos ^ y $. El primero es para indicar que sea desde el principio y el otro para que verifique hasta el final.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #10 (permalink)  
Antiguo 07/03/2011, 08:39
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: detectar caracteres en una cadena

Cita:
Iniciado por abimaelrc Ver Mensaje
Porque le estás indicando que encuentre dentro de la cadena caracteres entre 4 a 8 que sean lo que describiste y tu lo que quieres es que verifique de principio a fin que tenga esos caracteres. Para eso está los simbolos ^ y $. El primero es para indicar que sea desde el principio y el otro para que verifique hasta el final.
vale ahora si que me funciona, lo que tuve que agregarle el +. para que sirve??
y hay alguna forma de indicar en expreciones regulares el minimo y el maximo de digitos, caracateres... queres??

saludos y gracias por las respuestas
  #11 (permalink)  
Antiguo 07/03/2011, 08:53
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: detectar caracteres en una cadena

Pasa por el área de aportes que están en este foro para que veas un tema que habla sobre expresiones regulares. Busca por PCRE en esa área.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: caracteres, cadenas
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 10:25.