web-dev-qa-db-ja.com

PHP preg_replaceは数字のみを許可する

この既存のpreg_replaceを変更して、数字のみを許可するにはどうすればよいですか?

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

数字以外の文字をすべて削除したいと言っていると思います。その場合、\Dは、「数字ではないもの」を意味します。

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

これを試して:

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

これはあなたが望むことをするはずです:

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

T-Regx library を使用することもできます。

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

T-Regx:

  • 失敗時に例外をスローします(falsenullまたは警告ではありません)
  • 自動区切り記号があります(区切り記号は不要です!)
  • 多くのクリーナーAPIを持っています
0
Danon