Foros del Web » Programando para Internet » PHP »

Solo caracteres que no sean numeros

Estas en el tema de Solo caracteres que no sean numeros en el foro de PHP en Foros del Web. Hola maestr@s porque esto no hace lo que deberia : lo que quiero es comprobar que no haya numeros en el contenido de una variable ...
  #1 (permalink)  
Antiguo 23/05/2003, 05:30
Avatar de kco
kco
 
Fecha de Ingreso: septiembre-2001
Mensajes: 249
Antigüedad: 22 años, 6 meses
Puntos: 0
Solo caracteres que no sean numeros

Hola maestr@s porque esto no hace lo que deberia :
lo que quiero es comprobar que no haya numeros en el contenido de una variable ($Texto)

$ER_Texto= "[^0-9]";


if (eregi ($ER_Texto, $Texto)){
print ("El Texto se ha escrito correctamente<br><br>");
}else{
print ("El Texto NO se ha escrito correctamente<br><br>");
}

si digo $Texto= "dia 45"
me dice que el texto esta bien escrito pero tiene dos nºs (el 4 y el 5)

POR QUE??
Como lo puedo hacer; ya he probado ha hacer esto:

$Texto_2 = strspn($Texto, "0123456789");

if ( $Texto_2 == 0 ){
print ("El Texto se ha escrito correctamente<br><br>");
}else{
print ("El Texto NO se ha escrito correctamente<br><br>");
}


y solo funciona si el nº esta el primero si esta al final o en medio de la variable dice que esta correctamente escrito

POR QUE??

Muchas gracias y un abrazo de un PHPero+
kco
  #2 (permalink)  
Antiguo 23/05/2003, 06:00
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola, kco.

Prueba con: $ER_Texto= "(^[0-9])";

Espero que te funcione. Saludos,
  #3 (permalink)  
Antiguo 23/05/2003, 06:05
Avatar de kco
kco
 
Fecha de Ingreso: septiembre-2001
Mensajes: 249
Antigüedad: 22 años, 6 meses
Puntos: 0
Muchas Gracias JavierB

pero sigue IGUAL :-p :-p

Alguien sabe WHY???


Última edición por kco; 23/05/2003 a las 06:11
  #4 (permalink)  
Antiguo 23/05/2003, 06:20
 
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona - España
Mensajes: 270
Antigüedad: 21 años, 5 meses
Puntos: 0
Prueba
$er-Texto="[a-z]/i";

La /i se coloca para que no se haga distinción entre mayúsculas y minúsculas
  #5 (permalink)  
Antiguo 23/05/2003, 06:30
Avatar de kco
kco
 
Fecha de Ingreso: septiembre-2001
Mensajes: 249
Antigüedad: 22 años, 6 meses
Puntos: 0
Gracias Cocker

Pero esto sigue igual

Vamos a ver si lo sacamos

  #6 (permalink)  
Antiguo 23/05/2003, 06:53
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Si lo quieres para usar con if, podrias cambiar la logica del if. Comprueba si existe algun numero, si lo hay dices que esta erroneo y si no hay dices que esta bien. Como no entiendo de esxpresiones regulares, supongo que "[0-9]" sirve para comprobar que hay numeros:
Código PHP:
$ER_Texto"[0-9]";


if (
eregi ($ER_Texto$Texto)){
print (
"El Texto NO se ha escrito correctamente<br><br>"); 
}else{
print (
"El Texto se ha escrito correctamente<br><br>");

Como he dicho, no estoy seguro de la expresion regular.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 23/05/2003, 09:12
Avatar de Pino  
Fecha de Ingreso: abril-2003
Ubicación: Cangas do Morrazo, Pontevedra, Galicia, España, Europa, etc
Mensajes: 490
Antigüedad: 21 años
Puntos: 0
Código PHP:
[^0-9
Quiere decir que hay caracteres del 0 al 9.
Por ejemplo si pongo
Código PHP:
[^a-Z
quiere decir que puedes poner caracteres desde la a minuscula hasta la z mayuscula. No se si lo entiendistes. Aqui te va un pequeño artículo: http://www.xlwebmasters.com/doc3.php?id=657&doc=php122

kco por que no pruebas esto:

Código PHP:
$ER_Texto"^[[:alnum:]]";

if (
eregi ($ER_Texto$Texto)){
print (
"El Texto NO se ha escrito correctamente<br><br>");
}else{
print (
"El Texto se ha escrito correctamente<br><br>");

Creo que no va a funcionar pero prueba.

Un saludo
__________________
Pïno
Webmaster de Programas Lynx
Usuario Registrado de Linux #327681

Mi cuerpo en windows, pero mi mente pensando en linux.
  #8 (permalink)  
Antiguo 23/05/2003, 12:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Yo uso:

^[0-9]*$

Código PHP:
if (eregi("^[0-9]*$",$tu_variable)){
   echo 
"Contiene numeros";
} else {
    echo 
"no contiene numeros";

En expresiores regulares hay que tener en cuenta ^ para indicar "principio de la cadena" .. y *$ para final .. (algo así es la cosa .. En un manual de expresiones regulares lo pueden ver mejor ..)

El eregi() aquí no hace mucho . pero con la "i" es para que no distinga entre mayusculas y minusculas como no lo hace ereg() por ejemplo ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 23/05/2003, 12:30
Avatar de Pino  
Fecha de Ingreso: abril-2003
Ubicación: Cangas do Morrazo, Pontevedra, Galicia, España, Europa, etc
Mensajes: 490
Antigüedad: 21 años
Puntos: 0
Hola, cluster los sabes todo . Cluster como lo puse yo esta mal o bien. Se supone que [[:alum:]] solo permite caracteres numericos.
¿Entonces esta bien o mal lo que dije yo?

Un saludo

perdon dije [[:alum:]] y es: [[:alnum:]]
__________________
Pïno
Webmaster de Programas Lynx
Usuario Registrado de Linux #327681

Mi cuerpo en windows, pero mi mente pensando en linux.
  #10 (permalink)  
Antiguo 23/05/2003, 12:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Da igual [0-9] que [[:alnum:]] ... lo que importa es el ^ y el *$

^[[:alnum:]]*$

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #11 (permalink)  
Antiguo 23/05/2003, 12:49
Avatar de Pino  
Fecha de Ingreso: abril-2003
Ubicación: Cangas do Morrazo, Pontevedra, Galicia, España, Europa, etc
Mensajes: 490
Antigüedad: 21 años
Puntos: 0
Gracias, por estar siempre ahy

un saludo

PD: podias pensar en empezar a cobrar
__________________
Pïno
Webmaster de Programas Lynx
Usuario Registrado de Linux #327681

Mi cuerpo en windows, pero mi mente pensando en linux.
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:05.