2010-01-20 36 views

Respuesta

13

Prueba esto:

$clean = preg_replace('/[^\\d.]+/', '', $str); 

Pero también se podría utilizar [^0-9.] si usted está más familiarizado con eso. Tenga en cuenta que . no necesita ser escapado dentro de la declaración de clase de caracteres, ya que no es un carácter especial (solo ], \ y según el contexto también ^ y -).

+0

no '+', sino 'g' :) – Tomalak

+1

@Tomalak: No hay modificador * g * en PCRE de PHP. Reemplazar es siempre global. – Gumbo

+0

Gracias por aclarar, no estaba al tanto de eso. – Tomalak

5

Retire todo lo que coincida

[^0-9.] 

por ejemplo,

$output = preg_replace("/[^0-9.]/", "", $input); 
Cuestiones relacionadas