regex numara tespit deseni

TeaMTurkeR Şenol TÜRKER

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 :)

27-12-2013 00:40

    Php

    alicilin Ali Fırat Güler

    İ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 

    smiley

     

    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ı smiley

    27-12-2013 13:42 Edit:27-12-2013 16:36

      Php

      TeaMTurkeR Şenol TÜRKER

      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 smiley

      27-12-2013 17:43

        alicilin Ali Fırat Güler

        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 :)

        27-12-2013 17:55

          Php

          TeaMTurkeR Şenol TÜRKER

          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 :)

          27-12-2013 17:58

            Php

            alicilin Ali Fırat Güler

            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.

            27-12-2013 18:13

              TeaMTurkeR Şenol TÜRKER

              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 smiley

              27-12-2013 18:17

                Php

                alicilin Ali Fırat Güler

                Ancak 7 / 24 bilgisayar başında oturup özel mesajları onaydan geçirmek lazım :D yoksa yok valla :D

                27-12-2013 18:25

                  TeaMTurkeR Şenol TÜRKER

                  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

                  27-12-2013 18:29

                    www.Phpkodlari.com © 2009 Herkes Php öğrenecek
                    Web tasarım ve eğitim kaynağınız.