regex numara tespit deseni.
Selamun aleykum, bir cok yerde arastirmama ragmen saglikli calisan bir telefon numarasi tespiti icin uygun bir regex bulamadim kendimde tam bir regex ozurlu oldugum icin kendimde yazamiyorum derdime bir care :)
Buldugum kodlar bir cok numara yazilimini gormuyor ornek vereyim;
0544 123 45 67
544 123 45 67
0544-123-45-67
544-123-45-67
0544.123.45.67
544.123.45.67
0544/123/45/67
544/123/45/67
05441234567
5441234567
(0544)(123)(45)(67)
544 bosluk 123 bosluk 45 bosluk 67 nuramam bu
Vs. Gibi regexten kacma yolunu kullanan kullanicilar icin her turlu numarayi tespit etmek istiyorum fakat dedim gibi regex özürlü oldugum icin deseni yazamiyorumda :)
Php
İstediğiniz regex olsun hocam.
preg_match('#^(\+\d{1,2})*(\s|\D)*\d{3,4}(\s|\D)*\d{3}(\s|\D)*\d{2}(\s|\D)*\d{2}$#is',$tlf);
Şöyle bir regex Yukarıda yazdığınız hertürlü telefon numarasını kaçırmadan yakalar.
Yani ne yaparsa yapsın mutlaka bir telefon numarası girmek zorundadır. Örnek;
+90 0541 555 55 55
5555555555
555*555_55|55
555 555 ?))+)(=^?55 %/U+(^55
Tabi bu uyumlu mu uyumsuz mu diye kontrol eder. Eğerki daha gelişmiş bişey istersen hocam Yani adam hangi tür yazarsa yazsın ben düz numara almak istiyorum dersen de şöyle bir fonksiyon işinizi görür.
function no($tno)
{
preg_match('#^(\+\d{1,2})*(\s*|\D*)?(\d{3,4})(\s*|\D*)?(\d{3})(\s*|\D*)?(\d{2})(\s*|\D*)?(\d{2})$#is', $tno, $result);
if(count($result) != 0)
{
return $result[1].$result[3].$result[5].$result[7].$result[9];
}
else
{
return false;
}
}
buda bulursa düz bi şekilde alır. Bulamazsa da false verir. Sizde kullanıcıya şap diye suratına basarsınız hata mesajını
Php
hocam çok sağol benim gibi egex özürlü bir üyeye yardımda bulunduğun için yanlız buna ne girersem girim numara yok diyor bendemi bir mallık var neee
estagfurullah hocam o nasıl söz. Sorun ben de de olabilir. denedim gönderdiydim ama. Siz birdaha gözden geçirin. yine olmadıysa ben bir gözden geçireyim tekrar göndereyim :)
Php
hee yok yok hocam sulanmış bir beyinin etkisi altında kalmışım ben biraz :) fonksiyonuz doğru ve çok başarılı çalışıyor ama cümle içinde çalışmıyor onu gözden kaçırmışım :) ben mesaj kutusunda insanların birbirine numara vermelerini engellemek istiyordum :)
Php
Eğerki cümle içinde bulmasını isterseniz;
regex deseninin başındaki ^ ile sonundaki $ sembolünü kaldırın hocam. Muhtemelen çalışacaktır.
bende öyle yaptım hocam çok sağol ama yinede engelleyemiyorum kullanıcıları bu kullanıcıların aklına şaşıyorum dün adamın bitanesi üşenmemiş yazı ile yazmış numarasını bu insanlarla baş etmek çokm zor hocam yaa
Php
Ancak 7 / 24 bilgisayar başında oturup özel mesajları onaydan geçirmek lazım :D yoksa yok valla :D
aynen vallahi hocam yaa insan aklıyla baş edebilecek bir yazılım ve programlama dili dili bulunana kadar öyle yapacağız sanırım :D