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 usandopreg_replace
, serán reemplazados por nada''''
(segundo argumento depreg_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.