2010-01-22 6 views

Répondre

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

qui ne remplacent substrings pas de chiffres se composent ou. avec rien.

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

Échappe le point. – Robin

+0

Robin, il n'y a pas besoin. Je l'ai testé avant de poster et fonctionne bien. –

+1

@Robin, vous auriez besoin d'échapper à la période si elle était en dehors des crochets []. à l'intérieur des crochets, la période n'est pas traitée comme un caractère spécial –

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

Pour satisfaire ma curiosité j'ai demandé à la vitesse des réponses proposées et comme le montre preg_replace speed optimisation/ il est (beaucoup) plus rapide à utiliser str_replace() que preg_replace().

Vous pouvez donc utiliser str_replace() à la place.

+0

Mais vous ne pouvez pas vraiment utiliser 'str_replace()' dans ce cas, sauf si vous voulez coder en dur tous les caractères qui ne sont pas des nombres. –

+1

@kemp, hm ... oui c'est vrai. Ce serait trop :) – Veger

Questions connexes