folder Tahribat.com Forumları
linefolder Programlamaya Giriş
linefolder Düzenli İfadelerde Sıkıntı



Düzenli İfadelerde Sıkıntı

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Ayro
    Ayro's avatar
    Kayıt Tarihi: 08/Ağustos/2005
    Erkek

    DarkF4Te bunu yazdı:
    -----------------------------

    preg_replace('@[^a-zA-Z0-9._]@','','benim_adım_ebruli_biraz gerçek biraz_rüya')

    Replace ile istemediğin karakterleri değiştirip, uygun forma getirebilirsin, çözüm olabilir sanırım. Bu patternıde açıklayayım. Karakter kümesi içinde ^ işareti olumsuzluk ifade ediyor değilse demek yani. a-zA-Z0-9 karakterleri ve ._ karakterleri dışındaki tüm karakterleri yakalamayı sağlıyor. 
    Karakter sınırlaması içinde strlen kullan bence. 

    if(strlen($nick) < 3 || strlen$nick > 15){
      echo '3-15 karakter arasında nick girmelisiniz.';
    }


    ----------------------------- 

    heh hocam []{3,15} diye birşey yok muydu ? bn yanlış mı hatrlıyorum ? 

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DarkF4Te
    DarkF4Te's avatar
    Kayıt Tarihi: 02/Mart/2008
    Erkek

    Evet var seçimi kısıtlayabiliyorsun ama replace ile denememiştim daha önce, denedim olmadı :P

    Ama matchta falan kullanabiliyorsun.

    if(!preg_match("@[a-zA-Z0-9._]{3,15}@","aaaaaa")){
        echo 'nick uyumsuz';
    }

    Bu 3-15 karakter olup olmadığını kontrol etmekten ziyade 3-15 karakter arasında desene uyan bir şey var mı diye bakıyor. Örneğin aa yazarsan kabul etmez ahmetayşemehmet2 ise nick kabul eder. Çünkü desene uyan karakterler ayşenin ş'sinde bitiyor 7 karakter olmuş oluyor oysa 16 karakter. Buna uygun hale bir pattern yazılır mı bilmiyorum ama yazmaya uğraşmaya gerek yok bence. Strlen ile hallet derim.

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Ayro
    Ayro's avatar
    Kayıt Tarihi: 08/Ağustos/2005
    Erkek

    DarkF4Te bunu yazdı:
    -----------------------------

    Evet var seçimi kısıtlayabiliyorsun ama replace ile denememiştim daha önce, denedim olmadı :P

    Ama matchta falan kullanabiliyorsun.

    if(!preg_match("@[a-zA-Z0-9._]{3,15}@","aaaaaa")){
        echo 'nick uyumsuz';
    }

    Bu 3-15 karakter olup olmadığını kontrol etmekten ziyade 3-15 karakter arasında desene uyan bir şey var mı diye bakıyor. Örneğin aa yazarsan kabul etmez ahmetayşemehmet2 ise nick kabul eder. Çünkü desene uyan karakterler ayşenin ş'sinde bitiyor 7 karakter olmuş oluyor oysa 16 karakter. Buna uygun hale bir pattern yazılır mı bilmiyorum ama yazmaya uğraşmaya gerek yok bence. Strlen ile hallet derim.


    ----------------------------- 

    if(!preg_match('/[a-zA-Z0-9]/',$_POST['adi']))
         echo 'siktir';
    else
         echo 'tamam';

    -------

    ya sende ya bende problem var hocam.

    zum+%üğsuk

    girdiğimde tamam diyor.Türkçe karakter tamam ama bu sefer &% kabul ediyor.

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Ayro
    Ayro's avatar
    Kayıt Tarihi: 08/Ağustos/2005
    Erkek

    veee bi kaç gün ardından çözüm  ve kullanım şekli ;

    ihtiyacınız olrusa ;

    ------------

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">

    <script type="text/javascript">

    function Kontrol(){

        if((!document.yolla.adi.value.match(/^[A-Za-z0-9]+$/)) || (document.yolla.adi.value.length<3 || document.yolla.adi.value.length>15)){

            document.yolla.adi.focus();

            document.getElementById('uyari').innerHTML = '3-15 arası karakter girin (Türkçe yok)';

            return false;

        }else if((!document.yolla.nick.value.match(/^[A-Za-z0-9]+$/)) || (document.yolla.nick.value.length<4 || document.yolla.nick.value.length>15)){

            document.yolla.nick.focus();

            document.getElementById('uyari').innerHTML = 'Nick 4-15 karakter arasında olmalı (Türkçe karakter harici)';

            return false;

        }else if((!document.yolla.sifre.value.match(/^[A-Za-z0-9]+$/)) || (document.yolla.sifre.value.length<4 || document.yolla.sifre.value.length>15)){

            document.yolla.sifre.focus();

            document.getElementById('uyari').innerHTML = 'Şifrenin 4-15 karakter arasında olması şart.E bi zahmet Türkçe olmsın';

            return false;

        }else{

        alert('Yollanıyoo');

        }

    }

    </script>

    <form action="?" name="yolla" method="POST" onSubmit="return Kontrol();">

    <input type="text" name="adi"><br>

    <input type="text" name="nick"><br>

    <input type="text" name="sifre"><br>

    <input type="submit" value="Yolla">

    </form>

    <div id="uyari"></div>

Toplam Hit: 2773 Toplam Mesaj: 15