Javascript Dersleri RegExp(Düzenli İfadeler) Nesnesi
23.05.2012-21:17 Tarihinde Eklendi.
www.seyfettinkahveci.com
Oy Sayısı: 16005710Toplam Puan: 63600 / Yorum Sayısı: 412005710 adet.
Düzenli ifadeler kullanıcı tarafından girilen karakterleri n belirli bir formatta girilmesini sağlamaktır. Düzenli ifadelerin tanımını yaparken 2 farklı yol bulunmaktadır. Bunlar: var duzenli1=new RegExp(“pattern”,” modifiers”); Yada var duzenli2=/pattern/modifiers; Bu iki farklı yoldan herhangi birini kullanabilirsiniz burada seçim size kalmıştır. Modifiers: Modifiers büyük küçük harf duyarlılığını kaldırmak ve metnin tamamında arama yapmak için kullanılır.
Modifier | Tanım |
i(ignore case) | Karşılaştırırken büyük küçük harf duyarlılığını kaldırmak için kullanılır |
g(global) | Belirtilen metnin tamamında arama yapılacağını belirtir. |
m(multiline) | Birden fazla satırdan oluşan metinlerde arama yapmak için kullanılır. |
} Ekrana bulundu yazacaktır. Eğer aradığımız kelime büyük harflerle KAH olmasaydı bulunamadı yazacaktı çünkü i parametresini kullanmadık. Aynı zamanda burada g parametresini de kullanmasaydık KAH’yı sadece ilk kelimede yani Seyfettin içinde arayacaktı ve dolayısıyla KAH Seyfettin’in içerisinde olmadığı için bulunamadı yazacaktı. m(multiline): var metin=”Seyfettin \n KAHVECİ \n Balikesir \nÜniversitesi”; var duzenli=new RegExp(“Ba”,”m”); yada var duzenli=/Ba/m; if(duzenli.test(metin)){ document.write("bulundu"); }else{ document.write("bulunamadı");
} Ekrana bulundu yazacaktır. Eğer büyük küçük harf duyarlılığını kaldırmak isterseniz m’nin yanına i parametresini de eklemeniz gerekecektir. RegExp Nesnesi Özellikleri: global: Modifiers bölümünde g parametresinin kullanılıp kullanılmadığını denetler. Kullanıldı ise true kullanılmadı ise false değerini döndürür. var metin=”Seyfettin KAHVECİ”; var duzenli=new RegExp(“KAH”,”g”); if(duzenli.global==true){ document.write(“g Parametresi Kullanılmış”); else document.write(“g Parametresi kullanılmamış”); Ekran Çıktısı: g parametresi RegExp nesnesinde kullanıldığı için sonuç true olacak ve ekrana g Parametresi Kullanılmış yazacaktır. ignoreCase: Modifiers bölümünde i parametresinin kullanılıp kullanılmadığını denetler. Kullanıldı ise true kullanılmadı ise false değerini döndürür. var metin=”Seyfettin KAHVECİ”; var duzenli=new RegExp(“EY”,”i”); if(duzenli.ignoreCase==true){ document.write(“i Parametresi Kullanılmış”); else document.write(“i Parametresi kullanılmamış”); Ekran Çıktısı: i parametresi RegExp nesnesinde kullanıldığı için sonuç true olacak ve ekrana i Parametresi Kullanılmış yazacaktır multiLine: Modifiers bölümünde m parametresinin kullanılıp kullanılmadığını denetler. Kullanıldı ise true kullanılmadı ise false değerini döndürür. var metin=”Seyfettin \n KAHVECİ \n Balikesir \nÜniversitesi”; var duzenli=new RegExp(“Ba”,”m”); if(duzenli.multiLine==true){ document.write(“m Parametresi Kullanılmış”); else document.write(“m Parametresi kullanılmamış”); Ekran Çıktısı: m parametresi RegExp nesnesinde kullanıldığı için sonuç true olacak ve ekrana m Parametresi Kullanılmış yazacaktır. input: Eğer metin içerisinde aradığımız metin parçası (pattern) var ise metnin tamamını geri dündürür. var metin="Seyfettin \n KAHVECİ \n Balikesir \nÜniversitesi"; var duzenli=new RegExp("Ba","g"); duzenli.test(metin); document.write(RegExp.input); Ekran Çıktısı: Aradığımız Ba metin parçası metnimizin içerisinde bulunduğu için ekrana Seyfettin KAHVECİ Balikesir Üniversitesi yazacaktır. Fakat bu yöntemimizin çalışması için duzenli.test(metin); ifadesini kullanmalısınız. Bu ifade ilerleyen zamanlarda anlatılacaktır. lastIndex: Metnin içerisinde aradığımız metin parçacığı bulunuyorsa metin parçacığının bulunduğu yerden bir sonraki karakterin index numarasını verir. var metin=”Seyfettin \n KAHVECİ \n Balikesir \nÜniversitesi”; var duzenli=new RegExp(“Ba”,”g”);
duzenli.test(metin); document.write(duzenli.lastIndex); Ekran Çıktısı: Aradığımız Ba metin parçası metnimizin içerisinde bulunduğu için ekrana Ba’dan sonra bulunan l karakterinin index numarasını verecektir yani ekrana 24 yazar. Bu yöntemin çalışması için duzenli.test(metin); ifadesini kullanmanız gerekmektedir.
lastMatch: Metin parçacığını metnin içerisinde sondan başa doğru aramaya başlar. var metin=”Seyfettin \n KAHVECİ \n Balikesir \nÜniversitesi”; var duzenli=new RegExp(“es”,”g”);
duzenli.test(metin); document.write(RegExp.lastMatch); Ekran Çıktısı: Aradığımız es metin parçası metnimizin içerisinde bulunduğu için ekrana es yazar fakat buradaki es Balikesir in es i değil Üniversitesi’nin es’idir. Bu yöntemin çalışması için duzenli.test(metin); ifadesini kullanmanız gerekmektedir. leftContext: Aradığımız metin parçacığının solunda kalan metni verir.
var metin=”Seyfettin \n KAHVECİ \n Balikesir \nÜniversitesi”; var duzenli=new RegExp(“es”,”g”);
duzenli.test(metin); document.write(RegExp.leftContext);
Ekran Çıktısı: Aradığımız es metin parçası metnimizin içerisinde bulunduğu için ekrana Seyfettin KAHVECİ Balik yazar. Bu yöntemin çalışması için duzenli.test(metin); ifadesini kullanmanız gerekmektedir. rightContent: Aradığımız metin parçacığının sağında kalan metni verir. var metin=”Seyfettin \n KAHVECİ \n Balikesir \nÜniversitesi”; var duzenli=new RegExp(“es”,”g”);
duzenli.test(metin); document.write(RegExp.rightContext); Ekran Çıktısı: Aradığımız es metin parçası metnimizin içerisinde bulunduğu için ekrana ir Üniversitesi yazar. Bu yöntemin çalışması için duzenli.test(metin); ifadesini kullanmanız gerekmektedir. RegExp Nesnesi Metodları: compile(): Oluşturulan düzenli ifadeyi bu metodla değiştirebiliriz. var metin=”Seyfettin \n KAHVECİ \n Balikesir \nÜniversitesi”; var duzenli=new RegExp(“es”,”g”); duzenli.compile(“kah”,”gi”); if(duzenli.test(metin)){ document.write(“kah bulundu”); else document.write(“kah bulunamadı”); Ekran Çıktısı: Aradığımız kah metin parçası metnimizin içerisinde bulunduğu için ekrana kah bulundu yazar. exec(): metin içerisinde aradığımız metin parçacığı varsa bulunan karakteri geri döndürür. var metin="Seyfettin KAHVECİ Balikesir Üniversitesi"; var duzenli=new RegExp("e","gi"); sonuc=duzenli.exec(metin); document.write(sonuc);
Ekran Çıktısı: Aradığımız e metin parçası metnimizin içerisinde bulunduğu için ekrana e yazar. test(): metin içerisinde aradığımız metin parçacığı varsa true değerini döndürür yok ise false değerini döndürür. var metin=”Seyfettin KAHVECİ”; var duzenli=new RegExp(“KAH”,”g”); if(duzenli.test(metin)){ document.write("bulundu"); }else{ document.write("bulunamadı");
}
Ekran Çıktısı: Ekrana bulundu yazar.
search():metin içerisinde aradığımız metin parçacığı varsa bulunan metin parçacığının index numarasını geri döndürür yok ise -1 değerini döndürür. var metin="Seyfettin KAHVECİ Balikesir Üniversitesi"; var duzenli=new RegExp("ec","gi"); sonuc=metin.search(duzenli); document.write(sonuc); Ekran Çıktısı: Aradığımız ec metin parçası metnimizin içerisinde bulunduğu için ekrana ilk bulduğu ec karakterinin index numarasını yazar yani ekrana 14 yazar. Tanımlama Karakterleri: ^ Karakteri: Kendinden sonra gelen metin parçacığının aranan metnin başında olacağını ifade eder.
var metin="Seyfettin KAHVECİ Balikesir Üniversitesi"; var duzenli=new RegExp("^sey","gi"); duzenli.test(metin); document.write(duzenli.lastIndex); Ekran Çıktısı: Aradığımız sey metin parçacığının aranan metnin başında olması gereklidir ve ekrana 3 yazar. $ karakteri: öncesinde bulunan metin parçacığının aranan metinde sonda olacağını ifade eder. var metin="Seyfettin KAHVECİ Balikesir Üniversitesi"; var duzenli=new RegExp("tesi$","gi"); duzenli.test(metin); document.write(duzenli.lastIndex); Ekran Çıktısı: Aradığımız metin parçacığının aranan sonunda olması gereklidir ve ekrana 40 yazar. \b karakteri: sonrasında bulunan metin parçacığını metin içerisinde bulunan ilk ve son kelimelerde arar. Burada new RegExp kullanılmaz diğer yöntem kullanılmalıdır. var metin="Seyfettin KAHVECİ Balikesir Üniversitesi"; var duzenli=/\b Ba/; document.write(metin.search(duzenli)); Ekran Çıktısı: Aradığımız metin parçacığının aranan metnin sözcüklerinin başında yada sonunda olması gereklidir ve ekrana 17 yazar. \B karakteri: sonrasında bulunan metin parçacığını metin içerisinde bulunan ilk ve son kelimeler hariç bölgelerde yani sözcüklerin arasında arar. Burada new RegExp kullanılmaz diğer yöntem kullanılmalıdır. var metin="Seyfettin KAHVECİ Balikesir Üniversitesi"; var duzenli=/\Bfet/; document.write(metin.search(duzenli)); Ekran Çıktısı: Aradığımız metin parçacığının aranan metnin sözcüklerinin arasında olması gereklidir ve ekrana 3 yazar. ?! karakteri: önünde bulunan ifade ardına bulunan ifadeden önce olmayanı alır. var metin="Seyfettin KAHVECİ Seyfettin"; var duzenli=new RegExp("in(?! KAH)","gi"); document.write(metin.search(duzenli)); Ekran Çıktısı: Aradığımız metin parçacığının KAH dan önce olmayanını alır ve ekrana 25 yazar. Burada KAH dan önce boşluk var o yüzden ! den sonra boşluk koyuyoruz. ?=karakteri: önünde bulunan ifade ardına bulunan ifadeden önce olanı alır. var metin="Seyfettin KAHVECİ Seyfettin"; var duzenli=new RegExp("in(?= KAH)","gi"); document.write(metin.search(duzenli)); Ekran Çıktısı: Aradığımız metin parçacığının KAH dan önce olanı alır ve ekrana 7 yazar. Burada KAH dan önce boşluk var o yüzden = den sonra boşluk koyuyoruz. \n karakteri: Yeni satır karakterini ifade eder. var metin="Seyfettin KAHVECİ \n Seyfettin"; var duzenli=new RegExp("\n"); document.write(metin.search(duzenli)); Ekran Çıktısı: Ekrana 17 yazar. \t karakteri: Tab karakterini ifade eder. Diğer söyleyişle 8 Karakter boşluğu ifade eder. var metin="Seyfettin KAHVECİ \t Seyfettin"; var duzenli=new RegExp("\t","gi"); document.write(metin.search(duzenli));
Ekran Çıktısı: Ekrana 18 yazar. Özel Karakterler [sey]:S,e,y karakterlerinden herhangi birini arar ilk bulduğu bu karakterlerden herhangi biri olabilir.
var metin="Seyfettin KAHVECİ \t Seyfettin"; var duzenli=new RegExp("[eai]","gi"); document.write(metin.match(duzenli));
Ekran Çıktısı: Ekrana e,e,i,A,E,İ,e,e,i yazar. [s-z]:s ile z arasındaki karakterleri alır. var metin="Seyfettin KAHVECİ Seyfettin"; var duzenli=new RegExp("[s-z]","gi"); document.write(metin.match(duzenli)); Ekran Çıktısı: Ekrana S,y,t,t,V,S,y,t,t yazar. [^sey]:S,e,y karakterlerinden başka karakterleri alır. Boşluk Dahil. var metin="Seyfettin KAHVECİ Seyfettin"; var duzenli=new RegExp("[^eai]","gi"); document.write(metin.match(duzenli));
Ekran Çıktısı: Ekrana S,y,f,t,t,n, ,K,H,V,C, ,S,y,f,t,t,n yazar. [^s-z]: s ile z arasındaki karakter haricindekileri alır. Boşluk Dahil. var metin="Seyfettin KAHVECİ Seyfettin"; var duzenli=new RegExp("[^s-z]","gi"); document.write(metin.match(duzenli));
Ekran Çıktısı: Ekrana e,f,e,i,n, ,K,A,H,E,C,İ, ,e,f,e,i,n yazar. .(nokta): yeni satır karakteri harici tüm karakterleri alır.
var metin="Seyfettin KAHVECİ Seyfettin"; var duzenli=new RegExp("s.y","gi"); document.write(metin.match(duzenli)); Ekran Çıktısı: Ekrana Sey,Sey yazar. \w: Harf, rakam ve _(alt çizgi) karakterlerini alır. Burada new RegExp kullanılmaz diğer yöntem kullanılmalıdır. var metin="Seyfettin KAHVECİ Seyfettin -_"; var duzenli=/\w/gi; document.write(metin.match(duzenli));
Ekran Çıktısı: Ekrana S,e,y,f,e,t,t,i,n,K,A,H,V,E,C,İ,S,e,y,f,e,t,t,i,n,_ yazar. \W: Harf, rakam ve _(alt çizgi) dışındaki karakterlerini alır. Burada new RegExp kullanılmaz diğer yöntem kullanılmalıdır. var metin="Seyfettin KAHVECİ Seyfettin -_"; var duzenli=/\W/gi; document.write(metin.match(duzenli));
Ekran Çıktısı: Ekrana , , ,- yazar. \d: sadece rakamları alır. Burada new RegExp kullanılmaz diğer yöntem kullanılmalıdır. var metin="Seyfettin KAHVECİ Seyfettin 1992"; var duzenli=/\d/g; document.write(metin.match(duzenli));
Ekran Çıktısı: Ekrana 1,9,9,2 yazar. \D: Rakam dışındaki karakterleri alır. Burada new RegExp kullanılmaz diğer yöntem
var metin="Seyfettin KAHVECİ Seyfettin 1992"; var duzenli=/\D/g; document.write(metin.match(duzenli)); Ekran Çıktısı: Ekrana S,e,y,f,e,t,t,i,n, ,K,A,H,V,E,C,İ, ,S,e,y,f,e,t,t,i,n, yazar. \s: Sadece boşluk karakterini alır. Burada new RegExp kullanılmaz diğer yöntem
var metin="Seyfettin KAHVECİ Seyfettin 1992"; var duzenli=/\s/g; document.write(metin.match(duzenli)); Ekran Çıktısı: Ekrana , , yazar. {x}:önündeki karakterin en az x kere tekrarlayanı alır.
var metin="Seyfettin KAHVECİ Seyfettin 1992"; var duzenli=new RegExp("9{2}","g"); document.write(metin.match(duzenli)); Ekran Çıktısı: Ekrana 99 yazar. {x,y}: önündeki karakterlerin en az x kere en çok y kere tekrarlayanı alır. var metin="Seyfettin KAHVECİ Seyfettin 1992"; var duzenli=new RegExp("9{1,2}","g"); document.write(metin.match(duzenli)); Ekran Çıktısı: Ekrana 99 yazar. {x,}: önündeki karakterlerin en az x kere tekrarlayanı alır. var metin="Seyfettin KAHVECİ Seyfettin 1992"; var duzenli=new RegExp("e{1,}","g"); document.write(metin.match(duzenli));
Ekran Çıktısı: Ekrana e,e,e,e yazar. +: önündeki karakterlerin en az 1 kere tekrarlayanı alır. var metin="Seyfettin KAHVECİ Seyfettin 1992"; var duzenli=new RegExp("e+","g"); document.write(metin.match(duzenli));
Ekran Çıktısı: Ekrana e,e,e,e yazar. ?: önündeki karakterlerin en az 0 en çok 1 kere tekrarlayanı alır. var metin="Seyfettin KAHVECİ Seyfettin 1992"; var duzenli=new RegExp("e?","g"); document.write(metin.match(duzenli));
Ekran Çıktısı: Ekrana ,e,,,e,,,,,,,,,,,,,,,e,,,e,,,,,,,,,, yazar. *: önündeki karakterlerin 0 yada daha fazla tekrarlayanı alır. var metin="Seyfettin KAHVECİ Seyfettin 1992"; var duzenli=new RegExp("e?","g"); document.write(metin.match(duzenli)); Ekran Çıktısı: Ekrana ,e,,,e,,,,,,,,,,,,,,,e,,,e,,,,,,,,,, yazar.
Tüm Kodlar Bana Aittir. Kaynak gösterilmeden ALINTI YAPILAMAZ.
Seyfettin KAHVECİ
Balıkesir Üniversitesi
NEF-BOTE
Uzun süredir yorumlara cevap veremediğim için sistem yeni yorumlara kapatılmıştır. Anlayışınız için teşekkürler. |
|