Javascript RegExp İle Veri Doğrulama, Değiştirme, Arama

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 İle Veri Doğrulama, Değiştirme, Arama

Javascript

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.

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.

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

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

 

Kaynaklar

Javascript RegExp İle Veri Doğrulama, Değiştirme, Arama
5 (100%) 1 oy

Murat ÖNER

1989 yılında Kocaelinin Dilovası ilçesinde doğdum ilkokul ve lise eğitimimi Kocaeli’de aldım, önlisans üniversite eğitimimi Mehmet Akif Ersoy Üniversitesi Gölhisar Meslek Yüksekokulu’nda bilgisayar programcılığı bölümünde yaptım. Üniversite dönemi boyunca Microsoft'un student partner projesinde yer aldım ve diğer student partner öğrencileri ile birçok farklı projede yer aldım. Üniversite eğitimi tamamlandıktan sonra staj yapmış olduğum Ries Technologies şirketinde yazılım geliştirici ve web designer olarak görev aldım ardından Gen Yazılım firmasında ERP ve HBYS sistemleri ile ilgili yazılım geliştirmeye devam ettim. Şuan aktif olarak mobil, web ve masaüstü uygulamalar geliştirmeye devam etmekteyim.

Bunlar da hoşunuza gidebilir...

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir