Foros del Web » Programando para Internet » PHP »

Simplificar expresion regular

Estas en el tema de Simplificar expresion regular en el foro de PHP en Foros del Web. No es repeticion de posts....... Bueno...... a alguien se le ocurre como puedo evitarme el strlen() en esta funcion que determina si la cadena (como ...
  #1 (permalink)  
Antiguo 08/02/2009, 15:56
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Simplificar expresion regular

No es repeticion de posts.......

Bueno...... a alguien se le ocurre como puedo evitarme el strlen() en esta funcion que determina si la cadena (como cadena) es un numero ?

Código PHP:
<?php

$string 
'1234';

Function 
numeric_string($string){   // determina si una CADENA es un numero
  
$len strlen($string); 
  echo 
"long: $len ";  
  
$do  preg_match("/([0-9]{".$len."})/"$string);
return (
$do==1);
}

var_dump (numeric_string($string));
?>
Seria mejor hacer un while verificando sea numerico cada uno ? que piensan ?
__________________
Salu2!

Última edición por Italico76; 08/02/2009 a las 16:06
  #2 (permalink)  
Antiguo 08/02/2009, 16:13
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Simplificar expresion regular

Con la funcion is_numeric() y, si solo quieres enteros con is_int()
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 08/02/2009, 16:20
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Simplificar expresion regular

Si te refieres a cualquier valor numérico, puedes usar is_numeric(). SI deseas saber sólo enteros, is_int() en teoría es la solución. Pero muchos recomiendan hacerlo así:

Código PHP:
function es_entero($v) {
    return (
$val !== true and (string)(int)$v === (string)$v);

Ahora, también tienes la función ctype_digit().

  #4 (permalink)  
Antiguo 08/02/2009, 16:33
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Simplificar expresion regular

Ante todo....gracias a todos los que respondieron

Si, is_numeric() no se si la ocuparia porque quiero solo cadena de numeros.... y no importa la longitud.... aunque bueno..... supongo no serian muy largos (lo digo por el rango de los enteros)

okram....... me anoto ya esas funciones! ctype_digit() me viene de lujo! gracias!
__________________
Salu2!
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:09.