Javascript Dersleri RegExp(Düzenli İfadeler) Nesnesi


23.05.2012-21:17 Tarihinde Eklendi.
www.seyfettinkahveci.com Derecelendirme: 10 / 10 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.
i(ignore case):
var metin=”Seyfettin KAHVECİ”;
var duzenli=new RegExp(“EY”,”i”);
yada
var duzenli=/ey/i;
if(duzenli.test(metin)){
document.write("bulundu");
}else{
document.write("bulunamadı");
}
Ekrana bulundu yazacaktır. Eğer i kullanmasaydık Seyfettin KAHVECİ içinde bulunan ey küçük harfle yazılmış ve bizim aradığımız EY büyük harfle yazılmış olduğu için bulunamadı yazacaktı.
g(global):
var metin=”Seyfettin KAHVECİ”;
var duzenli=new RegExp(“KAH”,”g”);
yada
var duzenli=/KAH/g;
if(duzenli.test(metin)){
document.write("bulundu");
}else{
document.write("bulunamadı");
}
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



Yazının tamamının kopyalanması yasaktır. En baştaki birkaç paragrafı kopyalayıp, yazıya link verebilirsiniz. Aksi durumda uyarılmaksızın yasal yollara gidilecektir.

Uzun süredir yorumlara cevap veremediğim için sistem yeni yorumlara kapatılmıştır. Anlayışınız için teşekkürler.
Yorumlar
Ad Soyad:emreŞehir:İstanbul
Tarih:06.02.2014
Soru Çok faydalı bir çalışma olmuş. Ellerinize sağlık..
Cevap Yorumunuz için teşekkürler iyi çalışmalar.