Sayılar hariç her şeyi kaldırmak için PHP kodu


135

Bir dizeden her şeyi kaldırmaya çalışıyorum ama sadece sayılar (0-9).

Bunun işe yarayacağını düşündüm ..

echo preg_replace("[^0-9]","",'604-619-5135');

Ama "604-619-5135" yankısı. Neyi kaçırıyorum???

Yanıtlar:


277

Bunu dene:

preg_replace('/[^0-9]/', '', '604-619-5135');

preg_replace genellikle a ile başlayan ve biten PCRE'leri kullanır /.


İç / çift tırnak PCRE tho ile ilgisi yoktur. Görünüşe göre (önceki günlerde (?flags)) / API işlevini tasarlayan / yazan insanlar, normal /flagsişlev bayraklarını ek bir işlev parametresi kullanmak yerine çift ​​tırnak formuyla geçirmenin iyi bir fikir olduğunu düşündüler .
Qtax

6
@Qtax: iyi bir nokta, evet (g / re / p ")" grep "kelimesini nereden aldığımızı biliyorum
Chris Eberle

109

Bu gelecekteki geliştiriciler içindir, bunu da deneyebilirsiniz. Çok basit

echo preg_replace('/\D/', '', '604-619-5135');

41
Merhaba, ben gelecekten bir geliştiriciyim. Bu gerçekten bizim ihtiyaçlarımıza iyi hizmet etti. Teşekkür ederim.
zesda

6
Gelecekte Zesda'dan daha uzaktayım ve teyit edebilirim, bu hala bir yardım
1919'da

3
2 Gelecek geri geldim ve onlar hala daha iyi bir yol bulduk doğrulayabilirsiniz.
Eoin

4
En uzak geleceğin son geliştiricisiyim. Bunun artık bir işe yaramadığını söylemek üzücü. Çok fazla plastik pipet kullanmamalıydın, güven bana, buraya geldiğinde göreceksin .... Eğer yaparsan.
Jeremy

2
Sadece FYI: 39.Yüzyılda hala bunu kullanıyoruz.
user-44651


3

regex kullanmak istemeyenler için çok daha pratik bir yol:

$data = filter_var($data, FILTER_SANITIZE_NUMBER_INT);

not: telefon numaraları ile de çalışır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.