web 2.0

ASP.Net ve Ajax'ta Regex Kullanımı

Bu bölümde ASP.Net'te ve Ajax'ta Regex (Regular Expressions - Düzenli İfadeler) yapısını göreceğiz. Bunu anlayacabileceğiniz sözlerle anlatmaya çalışacağım. Umarım faydası olur.

 

Regex , kendisine verilen belirli kalıplar dahilinde TextBox üzerinde girilen değerlerin doğru olarak girilip girilmediğini yani uyup uymadığını kontrol eder, girilen değer uymadığı halinde de işlemin gerçekleşmemesini sağlarız.

 

Regex ile;

 

Girilen telefon numarasını bir kalıp haline sokabiliriz. Örneğin: (0212) 999-99-99 gibi.

 

Girilen e-posta adresinin doğru olup olmadığını ve @ işaretinin var olup olmadığını kontrol edebiliriz. Örnek : bilgi@vedattaylan.com.tr

 

Mesela Posta kutusu veya T.C. Kimlik Numarasını sınırlayarak  doğru bir şekilde girilmesini sağlayabiliriz. Örnek :12345

 

Mesela girilecek şifre uzunluğunu sınırlayabiliriz. Örnek olarak en az 8 karakter sınırlaması koyabiliriz.

 

Kullanıcıya Ad Soyad girilecekse sadece metin karakterlerinin girilmesini yada sadece numerik sayıların girilmesini sağlayabiliriiz.  Örnek : vedat yada 987654

 

Yada İlk harfin büyük diğerlerin küçük olmasını yada metin karakterlerinin içinde en az bir numerik sayının olması kuralını sağlayabiliriz. Örnek Vedat yada Ve8dat

 

daha bir çok kontrol ifadelerini sıralayabiliriz.

 

^ ve $ işaretlerinin anlamı : ^ işareti kontrolün başlangıç bölümünü ifade eder. $ işareti ise bitiş bölümünü ifade etmektedir. istediğimiz sorgulama filtresini bu iki işareti arasına girmek  mecburiyetindeyiz. aksi takdirde işlemeyerek dış ataklara maruz kalacaktır.

 

Birinci olarak ASP.Net üzerinde basit olarak bir e-posta kontrolünün Regex kullanımnıı göreceğiz.

 

İlk önce string tipinde filtremizi yazıyoruz.

 

Bu arada Regex'e , System.Text. RegularExpressions namespace ini yazarak ulaşabiliriz.

 

          string strregex = @"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}" +

          @"\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\" +

          @".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";

 

 

// Şimdi ise bir Regex Instance oluşturuyoruz. ve filtremizi Regex parametresine yazıyoruz.

 

            Regex re = new Regex(strregex);

 

// IsMatch Metodu ile doğru olup olmadığını kontrol ettiriyoruz.

 

            if (re.IsMatch(email))

                Label1.Text = "E-Posta formatı doğrudur";

            else

                Label1.Text = "E-Posta formatı yanlıştır. Kontrol ediniz.";

                return;

 

 İşte bu kadar basit.

 

İkinci olarak AJax'ta RegularExpressionValidator kullanarak yapacağız.

 

<asp:TextBox ID="txtEposta" runat="server"></asp:TextBox>

 

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="E-posta formatı yanlıştır."

                        ControlToValidate="txtEposta" ValidationExpression="^([0-9a-zA-Z]([-\.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$"></asp:RegularExpressionValidator>

 

Buada RegularExpressionValidator kontrolümüzün hangi kontrole bakacağını belirtmek için RegularExpressionValidator Kontrolümüzün ControlToValidate bölümüne TextBox Kontrolümüzün ID si olan txtEposta ismini yazıyoruz. Filtremizi ise ValidationExpression bölümüne yazıyoruz. Eğer sorgulamada e-posta yazımı yanlış ise bir hata mesajı göstermek içinde ErrorMessage bölümünü kullanıyoruz.  

 

Ajax'ta kullanımı gösterdikten sonra aşağıda size bir kaç örnek olacak ve sayfalarınızda kullanabileceğiniz Filtreleri yazdım.

 

 Ad Soyad : ^[a-zA-Z''-'\s]{1,40}$

 

T.C. Kimlik Numarası : ^\d{11}$ 

 

Telefon Numarası : ^[01]?[- .]?(\([2-9]\d{2}\)|[2-9]\d{2})[- .]?\d{3}[- .]?\d{4}$

 

 

E-Posta : ^([0-9a-zA-Z]([-\.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$

 

 

 

URL Adresi : ^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&amp;%\$#_]*)?$

 

 

 

 

Posta Kodu : ^(\d{5}-\d{4}|\d{5}|\d{9})$|^([a-zA-Z]\d[a-zA-Z] \d[a-zA-Z]\d)$

 

Şifre : (?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{8,10})$ // Koyu olan yer en az 8, en fazla 10 karakter uzunluğunda ifadesini belirtir.

 

 

Herkese iyi günler.

Tags: , ,

AJAX | ASP.NET

Comments are closed