64 votes

PHP preg replace n'autorise que les nombres

Comment puis-je modifier ce preg_replace existant pour n'autoriser que les numéros ?

 function __cleanData($c) 
{
    return preg_replace("/[^A-Za-z0-9]/", "",$c);
}

197voto

lonesomeday Points 95456

Je pense que vous dites que vous voulez supprimer tous les caractères non numériques. Si c'est le cas, \D signifie "tout ce qui n'est pas un chiffre" :

 preg_replace('/\D/', '', $c)

36voto

qbert220 Points 5029

Essaye ça:

 return preg_replace("/[^0-9]/", "",$c);

20voto

oezi Points 27038

Cela devrait faire ce que vous voulez :

 preg_replace("/[^0-9]/", "",$c);

-2voto

Danon Points 1064

Vous pouvez également utiliser la bibliothèque T-Regx :

 pattern('\D')->remove($c)

T-Regx également :

  • Lève des exceptions en cas d'échec (pas false , null ou avertissements)
  • Possède des délimiteurs automatiques (les délimiteurs ne sont pas requis !)
  • A une API beaucoup plus propre

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X