web-dev-qa-db-fra.com

PHP preg_replace n'autorise que des nombres

Comment puis-je modifier ce preg_replace existant pour n'autoriser que les nombres?

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

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

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

Essaye ça:

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

Cela devrait faire ce que vous voulez:

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

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

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

T-Regx également:

  • Lance des exceptions en cas d'échec (pas false, null ou avertissements)
  • A des délimiteurs automatiques (les délimiteurs ne sont pas nécessaires!)
  • A beaucoup d'api plus propre
0
Danon