2010-01-22 42 views

Respuesta

46
$str = preg_replace('/[^0-9.]+/', '', $str); 

reemplazar subcadenas que no consistan en dígitos o. sin nada.

6
preg_replace('/[^0-9.]/', '', $string); 
+0

Escape the dot. – Robin

+0

Robin, no es necesario. Lo probé antes de publicarlo y funciona bien. –

+1

@Robin, necesitaría escapar del período si estuviera fuera de los corchetes []. dentro de los corchetes, el período no se trata como un carácter especial –

1
$input = 'some str1ng 234'; 
$newString = preg_replace("/[^0-9.]/", '', $input); 
0

Para satisfacer mi curiosidad me preguntó acerca de la velocidad de las respuestas propuestas y como se muestra en preg_replace speed optimisation/ es (mucho) más rápido de usar que str_replace()preg_replace().

Por lo que es posible que desee utilizar str_replace() en su lugar.

+0

Pero realmente no puede usar 'str_replace()' en este caso, a menos que desee codificar todos los caracteres que no sean números. –

+1

@kemp, hm ... sí, eso es verdad. Eso seria demasiado :) – Veger

Cuestiones relacionadas