solo regulares regular que punto probar numeros mayores letras expresiones expresion espacios enteros php regex

que - expresiones regulares php



Expresión regular PHP-solo número de filtro (5)

Para eliminar cualquier cosa que no sea un número:

$output = preg_replace(''/[^0-9]/'', '''', $input);

Explicación:

  • [0-9] coincide con cualquier número entre 0 y 9 inclusive.
  • ^ niega un patrón [] .
  • Entonces, [^0-9] coincide con cualquier cosa que no sea un número, y como estamos usando preg_replace , serán reemplazados por nada '''' (segundo argumento de preg_replace ).

Sé que esto podría sonar como una pregunta ficticia, pero estoy tratando de asegurar que la cadena provista sea de un formato numérico / decimal para usarla más adelante con la función num_formato () de PHP.

Cómo lo haría, digamos que alguien está escribiendo a las 15:00 en el campo de texto, qué expresión regular y qué función de php debo usar para eliminar los dos puntos y hacer que solo devuelva los caracteres válidos.

preg_match () devuelve una matriz, por lo que no puedo pasar el resultado a number_format () a menos que implode () o algo así.

Su ayuda sería muy apreciada.


Podrías hacer algo como esto si solo quieres números enteros.

function make_whole($v){ $v = floor($v); if(is_numeric($v)){ echo (int)$v; // if you want only positive whole numbers //echo (int)$v = abs($v); } }


Puedes probar ese:

$string = preg_replace(''/[^0-9]/'', '''', $string);

Aclamaciones.


Usar is_numeric o intval es probablemente la mejor manera de validar un número aquí, pero para responder a su pregunta puede intentar usar preg_replace . Este ejemplo elimina todos los caracteres no numéricos:

$output = preg_replace( ''/[^0-9]/'', '''', $string );


use built in php function is_numeric para verificar si el valor es numérico.