web-dev-qa-db-fra.com

PHP - supprime tous les caractères non numériques d'une chaîne

Quelle est la meilleure façon pour moi de faire cela? Devrais-je utiliser regex ou existe-t-il une autre fonction PHP) que je peux utiliser?

Par exemple, je voudrais: 12 months devenir 12. Every 6 months devenir 6, 1M devenir 1, etc.

Je vous remercie

46
b85411

Vous pouvez utiliser preg_replace dans ce cas;

$res = preg_replace("/[^0-9]/", "", "Every 6 Months" );

$ res retourne 6 dans ce cas.

Si vous souhaitez également inclure un séparateur décimal ou un séparateur de milliers, vérifiez cet exemple:

$res = preg_replace("/[^0-9.]/", "", "$ 123.099");

$ res renvoie "123.099" dans ce cas

Incluez un point comme séparateur décimal ou séparateur de milliers: "/[^0-9.]/"

Inclure le coma comme séparateur décimal ou séparateur de milliers: "/ [^ 0-9,] /"

Incluez le point et le virgule comme séparateur décimal et séparateur de milliers: "/[^0-9,.HER/"

90
pguetschow

Utilisation \D pour correspondre aux caractères non numériques.

preg_replace('~\D~', '', $str);
44
Avinash Raj