Javascript RegExp Nedir, Veri Doğrulama, Değiştirme, Arama Nasıl Yapılır?

Javascript RegExp, Düzenli ifadeler anlamına gelen regular expression ile arama yapabilir, metin değişikliği yapabilir, kullanıcının girdiği verilerin doğruluğu ile ilgili kontroller yapılabilir. Günümüzde genel anlamıyla web sitelerinde veri doğruluğu ile ilgili kontrollerde sıklıkla kullanılmaktadır.

Javascript RegExp Nedir, Veri Doğrulama, Değiştirme, Arama Nasıl Yapılır?

Javascript RegExp Nedir, Veri Doğrulama, Değiştirme, Arama Nasıl Yapılır? Metin arama, değiştirme işlemlerinde düzenli ifadeler desenlerini kullanacağız ve bu desenlerin neler olduğunu detaylı bir şekilde göreceğiz. Düzenli ifadeler tek karakterden yada daha karmaşık ifadelerden oluşabilir. Makalenin bundan sonraki kısmında Regular Expression yani düzenli ifadelerden regexp diye bahsedilecektir.

 

 

Örnek sözdizimi

veya

Örnek

Örneği açıklayalım; /muratoner/i regexp’dir. muratoner desendir(aramada kullanılacak metin) i düzenleyici karakteri(harf duyarlılığını iptal eder yani aramada küçük büyük harf ayrımı olmaz)

String Metodlarını Kullanma

Regexp için Javascript’de 3 tane string metodunu kullanacagız. Bunlar search, replace ve match metodlarıdır. Adındanda kolayca anlaşılacağı üzere search metodunu arama yapmak ve replace metodunu değişiklik yapmak ve match metodunu eşleştirme yapmak(çoklu arama) için kullanacağız.

Search

search metodu aradığımız string değerin tam metin içerisindeki index konumunu verir. search metodu tek parametre almaktadır ve arama işlemini regexp yazarak gerçekleştirebiliyoruz. Şimdi örnek bir search metodu yazalım.

Üstteki kodda aramak istediğimiz kelime bir kısmı cümle içerisinde MuratOner diye geçmektedir fakat biz muratoner diye yazdık bu şekilde yazma sebebimde i düzenleyici karakterini ekleyerek büyük-küçük harf duyarlılığını kapattım eğer i düzenleyicisini eklemeseydim -1 değeri dönecekti. Sonuç olarak search metodu bana 12 değerini döndericek sebebi ise aradığım muratoner kelimesi 12.index’ten itibaren başlıyor. Regexp ifadesi kullanmadanda arama işlemini gerçekleştirebilirsiniz. Şimdi regexp kullanmadan arama işlemini yapalım.


Replace

replace metodunun ilk parametresine gireceğimiz regexp deseni ile elde edeceğimiz string değerler ikinci parametrede belirttiğimiz değer ile değiştirmek için kullanabileceğimiz metot’dur. Hemen bir örnek ile anlattığım durumu pekiştirelim.

Replace metodunda regexp kullanmak zorunda değilsiniz direk olarak değiştirmek istediğiniz string değeri belirtip değiştirebilirsiniz yukarıdaki örneği regexp kullanmadan gerçekleştirelim.

Gördüğünüz gibi herhangi bir regexp ifadesi kullanmadanda değiştirme işlemi gerçekleştrebiliyorsunuz.


Match

Tek parametre alan match adlı metoda regexp desenini istersenix RegExp adlı sınıftan instance alarak yada direk olarak regexp desenlerini yazarakda kullanabilirsiniz. Şimdi bir örnek ile bu durumu netleştirelim.

match metodu ile eşleşen hiçbir kayıt bulunmaz ise null değeri dönecektir fakat eşleşen değer olursa array olarak sonuç dönecektir. Match metodunu daha basit bir örnek ile açıklamaya çalışalım.

Global ve ignore-case düzenleyicilerini kullanarak ve [A-E] deseni ile büyük harflerden A’dan E’ye kadarki kısım ve küçük harflerden a’dan e’ye kadar olan kısım array içerisinde dönecektir üstteki örnekte yorumlanmış son satırda dönen sonuç görülmektedir.

Javascript RegExp Düzenleyicileri

DüzenleyicilerAçıklama
gArama işlemini tüm metin içerisinde yapacaktır.
iBüyük-küçük harf duyarlılığı bu düzenleyici kullanıldığında kapatılmaktadır.
mÇok satırlı metniniz varsa ve aramanın tüm satırda yapılması isteniyorsa kullanılacak düzenleyicidir.
uUnicode karakter setlerini desteklemesini istiyorsanız bunuda düzenleyecilere eklemelisiniz özellikle türkçe karakterler üzerinde işlem yapacaksanız bunu eklemelisiniz.

RegExp Desenleri

Köşeli parantezler karakter aralığı bulmak için kullanılır.

DesenAçıklama
[abc]Köşeli parentezler içerisindeki herhangi bir karakteri arar.
[0-9]Köşeli parantezler içerisindeki 0 ile 9 arasındaki dijital sayıları arar.
(x|y)x veya y karakterini arar( | karakteri veya anlamına gelmektedir.)

Özel anlamları olan metakarakterler

MetakarakterAçıklama
\dSayı arama
\sBoşluk karakteri arama
\bBir kelimenin başında veya sonunda eşleşme bulmak.
\uxxxxxxxx hexadecimal numaraları ile özel Unicode karakterleri arama

Javascript RegExp Özellikleri

global, multiline, ignoreCase

Düzenleyicilerin desen içerisinde kullanılıp kullanılmadığı ile ilgili bilgiye regex özellikleri ile erişebiliyoruz. Bu özellikler global, multiline ve ignoreCase’dir. Şimdi bununla ilgili bir örnek yapalım.

global, multiline ve ignoreCase özellikleri boolean değer döndermektedir geriye.

input

RegExp işleminde kullanılan tam metine bu özellik üzerinden erişebilirsiniz. Üstteki örnekte özelliklere RegExp sınıfından aldığımız örnek ile yani res değişkeni üzerinden erişmiştik özelliklere. input özelliği static tipli bir özelliktir bu özelliğe erişmek için res değişkenini değil direk olarak RegExp.input sınıf adı üzerinden erişimi sağlayacağız.

Üstteki örneğin çıktısı olarak sayfaya Şuan murat öner’in sitesindesiniz. yazdırılacaktır.

lastIndex

Adındanda anlaşılacağı üzere eşleşmenin en son karakterinin index değerini bize dönderecektir. Bir üstteki örnek üzerinden devam edersek regexp deseni olarak öner girmiştik şimdi öner deseni ile eşleşmenin son karakteri olan r karakterinin index değeri kaçmış görelim. lastIndex özelliğine regexp adlı değişken üzerinden erişeceğiz.

Örneği çalıştırdığınızda öner deseninin son karakteri olan r karakterinin index değeri olan 15 değerini döndüğünü göreceksiniz.

leftContext

desen eşleşmesinin solunda kalan kısmı dönecektir üstteki örnek üzerinden gidersek bize dönecek sınuç şuan murat tır

rightContext

desen eşleşmesinin sağında kalan kısmı dönecektir üstteki örnek üzerinden gidersek bize dönecek sınuç ‘in sitesindesiniz. ‘dir

Kullanım Örnekleri

Tam kelime eşleştirmesi sağlama uzunca bir metninin var ve bir kelime içerisindeki metni yada ekleri değilde sadece ilgili kelimenin kendisini bulmak istiyorsanız \b regex kodunu başına ve sonuna kullanarak arasına girmiş olduğunuz ve kelime ve metni birebir eşleştirme yaparak arama sağlayabilirsiniz. Şimdi örneğe bakalım.

Üstteki kod sonucunda bize sadece Murat Öner kısmının olduğu bir array nesnesi dönecek eğer aradığınız şey birden fazla yer alsaydı o zaman tümü gelecekti dikkat ettiyseniz regex düzenleyicilerinde i,g ve u karakterlerini kullandık bunların anlamları Regex Düzenleyicileri kısmında yer alıyor.

📚 Javascript RegExp Benzeri Makaleler


✍ Lütfen olumlu-olumsuz tüm görüşlerinizi bana yorum yada mail yolu ile iletmeyi ihmal etmeyin.

🔗 Sosyal medya kanallarından makaleyi paylaşarak destek olursanız çok sevinirim.

👋 Bir sonraki makalede görüşmek dileğiyle.

5/5 - (3 votes)

Murat Öner sitesinden daha fazla şey keşfedin

Okumaya devam etmek ve tüm arşive erişim kazanmak için hemen abone olun.

Okumaya devam et