Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

Regular expression Kontrolünde istenmeyen karakteri temizlemek

Arkadaşlar başlık gayet açık ama biraz daha açayım...

Dielim bir Telefon numarası kontrol ettiriyorsunuz... Adam kayıt olurken yanlışlıkla + boşluk * yani telefon numarasında olmaması gerekn karakterler girdi... ben bu girilen karakterleri temizlemek istiyorum nasıl bir yöntem izlemeliyim...? Normalde kontrol ediyorum telefon formatında deilse input text'in değerini sildiriyorum ama bunu yapmak istemiyorum sadece hatalı olan karakteri nasıl silebilirim..
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • uls adlı üyenin fotoğrafı
    12 yıl önce yazılmış
    65 cevap - 10 soru
    aradığın ifade; [^0-9]+

    preg_replace('#[^0-9]+#', '', $numara);

    rakamlar dışındaki tüm karakterleri temizler.
    • psygnosis adlı üyenin fotoğrafı psygnosis
      burda tam olarak ne yaptıgını anlamadım.. birde jquery'ye döndürebilirmisin...
      12 yıl önce yazılmış
    • psygnosis adlı üyenin fotoğrafı psygnosis
      bu arada tel formatım +905555555555 şeklinde yani başta + olucak + haricindeki özel karakterleri sileyim
      12 yıl önce yazılmış
    • uls adlı üyenin fotoğrafı uls
      <!DOCTYPE html>
      <head>
        <style>
       body{ font-size: 12px; font-family: tahoma; }
       </style>
        <script src="http://code.jquery.com/jquery-latest.js"></script>
      </head>
      <body>
        
      <input type="no" id="no">
      <input type="submit" id="gonder" value="Doğrula">
      <br />
      <div id="dogru"></div>
        
      <script>
      $('#gonder').click(function() {
        var deger = $('#no').attr('value');
        $('#dogru').html("+"+deger.replace(/[^0-9]/g,""));
      });
      </script>
      
      </body>
      
      12 yıl önce yazılmış
    • psygnosis adlı üyenin fotoğrafı psygnosis
      soyad = soyad.replace(/[^a-zA-Z\ö\ç\ş\ı\ğ\ü\Ö\Ç\Ş\İ\Ğ\Ü]/g, ''); şunda Türkçe karakteri algılamıyor sebebi nedir uls? yani böyle yapmama rağmen Türkçe karakterleri siliyor şu satırla
      12 yıl önce yazılmış
    • uls adlı üyenin fotoğrafı uls
      bende normal çalıştı. Türkçe karakterler de çıktı yani. dil kodlamanı bi kontrol et istersen. utf-8 en temizi.

      bir de Türkçe karakterleri escape etmene gerek yok. şöyle de kullanabilirsin;

      /[^a-zA-ZğüşıöçĞÜŞİÖÇ]/g

      hâlâ jquery kullandığını varsayarak söylüyorum.
      12 yıl önce yazılmış

Cevaplar

  • 1
    kralmermi adlı üyenin fotoğrafı
    12 yıl önce yazılmış
    102 cevap - 6 soru
    işlem php ise aşşağıdakini uygulayabilirsin.
    
    function temizle($text)
    {
       $aranacaklar = array("+", " ", ",", "/");
       $yerinegelecekler = array("", "", "", "");
       $degistir = strreplace($aranacaklar, $yerinegelecekler, $text);
       return $degistir;
    }
    
    echo temizle("+90 232 123 45 67");
    //sonuc su sekilde olacaktir. 902321234567
    
    


    kolay gelsin.
    • psygnosis adlı üyenin fotoğrafı psygnosis
      replace ypmışssın herhalde y rakamların arasında boşluk varsa ? yani 9 ile 0 yada ordaki 4 ile 5 arasında bu arada .Net kullanıyorum
      12 yıl önce yazılmış
    • psygnosis adlı üyenin fotoğrafı psygnosis
      şöyle bir şey yaptım boşluk için çalışıyorda hatta

      input taki değeri boşluğa göre split edip oluşan dizi içinde each le dönüp değerleri birleştirip bir değişkene atıyorum ve o değişkenide tekrar input'a yazdırıyorum.. Ama sonucta boşluk deil bir sürü karakter var bunu nasıl genelleyebilirim.. ya da genelleyebilirmiyim?
           telefon = $("#txtTelefon").val();
              var sonhali = "";
      
              var degisss = telefon.split(" ");
              $.each(degisss, function () {
      
                  sonhali = sonhali + this;
      
      
              });
              $("#txtTelefon").val(sonhali);
      
      12 yıl önce yazılmış
    • kralmermi adlı üyenin fotoğrafı kralmermi
      Evet Replace yaptirdim seninde yaptirdigin işlem sadece yetersiz kaliyor.

      .net ile de ayni mantikla işlem yaptirmayi dene hocam

      ayrica asadigaki resimde işini görebilecek birşeyler war umarim faydasi olur

      http://img10.imageshack.us/img10/2535/85955986.png
      12 yıl önce yazılmış
  • phpogreniyorum adlı üyenin fotoğrafı
    12 yıl önce yazılmış
    22 cevap - 7 soru
    
    <?php 
    $deger = "+90555*/55*/55555";     // numara
    
    
    
    $deger2 =  preg_replace('/(\W)/',"",$deger); // \W burada özel karakterler haricindeki herşeyi getir anlamına gelir
    
    
    
    
    echo "+".$deger2; // burada  numaramızın başına + ekliyoruz 
    ?>
    
    




    
    <?php 
    $deger = "+90555*/55*/55555";
    
    $deger2 =  preg_replace('/(\W)/',"",$deger);
    echo "+".$deger2;
    ?>
    
    • phpogreniyorum adlı üyenin fotoğrafı phpogreniyorum
      bu arada (+) yı if kontrolüyle eklettir varsa eklemesin yoksa eklesin gibi
      12 yıl önce yazılmış
    • kralmermi adlı üyenin fotoğrafı kralmermi
      php ile degil .net ile yapiyormus adam :)
      12 yıl önce yazılmış
    • phpogreniyorum adlı üyenin fotoğrafı phpogreniyorum
      sectiği kategoriler arasında js ve jquery var ona göre cevap verdim

      js ve jquery + konudada php kodları görünce bende yazmak istedim

      özür kardeşim :)
      12 yıl önce yazılmış
    • psygnosis adlı üyenin fotoğrafı psygnosis
      ben şununla hallettim yinede teşekkürler...

         telefon = telefon.replace(/[^0-9+]/g, '');
      
      
          $("#txtTelefon").val(telefon);
      12 yıl önce yazılmış
    • uls adlı üyenin fotoğrafı uls
      bu şekilde yapmışsın fakat ben verdiğim örnekte özellikle + karakterine izin vermeyip sonradan ekledim. çünkü izin verdiğinde artı karakteri numaranın ortasına da konabilir. 90505+2343434 gibi.
      12 yıl önce yazılmış