Birçok dilde olduğu gibi RegEx fonksiyonu validation kontrolleri yapmak için kullanılır. Örneğin bir inputa sadece sayı,metin,email,telefon numarası yada herhangi bir formata uygun veri girilmesi istenildiğinde o formata uygun olup olmadığını RegEx fonksiyonu ile yapmak mümkündür. Kullanımı biraz karışık gelebilir ancak sadece 1 satırda istediğimiz pek çok şartı sağlayabiliriz. Aşağıda RegEx fonksiyonundaki özel karakterlerin nasıl kullanacağını detaylı şekilde bulabilirsiniz.

işaret

açıklama

              Örnek uygulama

*

0 veya daha fazla önceki karakterlerin tekrarlanmasıdır

1* : ,1,11,111

+

1 veya daha fazla önceki karakterlerin tekrarlanmasıdır

1+ : 1,11,111

()

gruplamadır

(11)+ : 11,1111

|

iki seçenekten birisidir

6|7 : 6 veya 7

[]

belirtilen aralık içindeki karakterlerden birisi

[1-3] : 1,2 veya 3

[^]

belirtilen aralık dışındaki karakterlerden birisi

[^1-3] : 1,2 ve 3 dışındaki tüm karakterler

.

yeni satır harici tüm karakterler

.* : , 1, asad,123

\s

boşluk karakteri

\s+ : , ,

\S

boşluk karakteri haricindeki tüm karakterler

\S+ : asdasdas,21321

\d

rakamsal tüm karakterler

\d+ : 12312,321

\D

rakam olmayan tüm karakterler

\D+ : adas,adsa

\w

kelimelerde kullanılan tüm karakterler

\w+ : ali

{}

önceki karakterlerin veya grubun kaç adet tekrarlanacağını belirtir.

a{1}: a
b{1-3}: b,bb veya bbb

 

e-posta adresi \S+@\S+\.\S+ arada @ işareti olmalı. @ önce en az boşluk olmayan 1 karakter. @ sonra en az boşluk olmayan bir karakter sonra "." daha sonra en az 1 boşluk olmayan karakter olmalı.
şifre \w{4-10} en az 4 en çok 10 karakterlik şifre.
şifre 2 [a-zA-Z]\w*\d+\w* ilk karakter küçük veya büyük bir harf olmalı.Daha sonraki karakterler arasında en az bir adet rakam olmalı.
tel \d{3} \d{3} \d{2} \d{2} xxx xxx xx xx formatında telefon bilgisi.

 

1.) “^” Karakteri
Satır başını ifade eder.
“^ColdFusionnedir” deseni, satır başında “ColdFusionnedir” stringi varsa bunu döndürür.

2.) “$” Karakteri
Satır sonunu ifade eder.
“ColdFusionnedir$” deseni, satır sonunda “ColdFusionnedir” stringi varsa bunu döndürür

 

3.) “[]” Karakterleri
Bir arrayi yada aralığı temsil eder.
“ColdFusion[RNK]edir” deseni, ColdFusionRedir, ColdFusionNedir ve ColdFusionKedir stringlerini döndürür.

“ColdFusion[a-z]edir” şeklindeki kullanım aralık belirtmeye yarar.
“ColdFusion[0-9]edir” şeklindeki kılanlım ise sayısal aralık belirtmeye yarar.

 

4.) “\” Karakteri
Kendinden sonraki özel karakterin stringe dahil edilmesini sağlar.
“ColdFusionnedir\?” deseni ColdFusionnedir? Stringini döndürür. (Eğer “\” karakterini kullanmamış olsaydık ColdFusionnedi yada ColdFusionnedir dönerdi.)


5.) “{}” Karakterleri
Kendinden önce gelen karakterin belirtilen sayıda tekrar etmesini sağlar.
“C{4}oldFusionnedir” deseni, CCCColdFusionnedir stringini döndürür


1  [a-zA-Z]{1,10}—sadece  * string*  girişi için(1 ıle 10 karakter uzunlugunda olabilşir,biz degiştirebiliriz bu oranları)

2   [a-zA-Z0-9]{1,10}—string+sayı girişi için(köşeli parantezlere ektra dahil etmek istediklerimizi yazabiliriz.

3   ^\d+$—sadece *sayı* girişi için kullanılır.


SAYISAL DEGERLER ILE ILGILI BILGILER

İki önemli noktaya dikkat edelim:

 

(“/^”à string in baslangıcını gösterir.)

(“$/;”–àstring in bittigini gösterir.)

 

“(0?[1-9])”— // 1, 2, .., 9, 01, 02, …, 09 gibi yazılmış günleri tanımlar.

“([12][0-9])”— // 10, 11, …, 29 gibi yazılmış günleri tanımlar.
“(3[01])”—– // 30, 31 günlerini tanımlar.

// Bu üç tanımı OR (|) işlemiyle
// birleştirirsek gün tanımını elde ederiz.
// Gün tanımı :— “((0?[1-9])|([12][0-9])|(3[01]))

Şimdi desenimizin AA yani tarihin ay belirtilen kısmını tanımlayalım :

“(0?[1-9])”— // 1, 2, .., 9, 01, 02, .., 09 gibi yazılmış ayları tanımlar.
“(1[0-2])”— // 10, 11, 12 aylarını tanımlar.
// Bu iki tanımı OR işlemiyle
// birleştirirsek ay tanımını elde ederiz.
// Ay Tanımı :— “((0?[1-9])|(1[0-2]))”

Şimdi desenimizin YYYY yani tarihin yıl belirtilen kısmını tanımlayalım :

“([12][0-9][0-9][0-9])”—- //1000 ile 2999 yılları arasındaki tüm yılları içerir.
Ve son olarak tanımladığımız gün, ay ve yıl desenlerini “/” ile birleştirelim :
“((0?[1-9])|([12][0-9])|(3[01]))(/)(0?[1-9]|1[0-2])(/)([12][0-9][0-9][0-9]))”

 

 

BIRKAÇTANE ÖRNEK UYGULAMA YAPALIM


  1. validate="/[\d\w]{3,}/" –EN AZ 3 CHARACTER OLMALI UZUNLUGU VE ICERIGI KELIME YADA SAYI OLABILIR .
  2. validate="/^([0-9]{11})$/ " -11 RAKAMLIK TELEFON NUMARASI
  3. validate="^([0-9]){2}(\/|-){1}([0-9]){2}(\/|-){1}([0-9]){4}$/"-TARIH FORMATI (dd/mm/yyyy)
  4. validate="/^([\w]+)(.[\w]+)*@([\w]+)(.[\w]{2,3}){1,2}$/"-EMAIL

 

 

ORNEKLER

 emailRegEx = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
 SadeceString = /[^0-9]/;
 sadecestring=/^[a-zA-Z]+$/;———SADECE A ILE Z   ARASINDAKI KARAKTERLERI KULLANABILIRSINIZ.
 sadecestring=/^[a-zA-Z_*-]+$/;——-A VE Z NIN DISINDA  _ VE  *  OZEL KARAKTERLERINI DE KULLANICI GIREBILIR.(SIZ ISTEYINIZE GORE OZEL KARAKTER EKLEYEBILIRSINIZ.)
sadecestring=/^[a-zA-Z0-9]+$/;——-STRING VE SAYI GIREBILIRSIN
 sadecestring=/^[a-zA-Z_*0-9]+$/;——STRING,SAYI VE OZEL BELIRLEDIGIN OZEL KARAKTERLER GIREBILIRSIN.(BURADA OZEL KARAKTERLERI 0-9 DAN ONCE YAZMALISIN.)
 sadecestring=/^\d+$/
var sadecestring=/^\@+$/;———-SADECE @ KONTROLU YAPIYOR EMAIL ICIN
var sadecestring=/^\@\.+$/; EMAIL ICIN @ VE .(NOKTA) KONMTROLU YAPIYOR
 sadecestring=/[01][0-2][/\.-]?[0-3][0-9][/\.-]\d{4}/;——SADECE DATE KONTROLU(_ _ / _ _ / _ _ _ _) TARIH FORMATI BU SEKILDE KONTROL.
 sadecestring=/^(05)[0-9][0-9][1-9]([0-9]){6}+$/;————TELEFON NUMARASI GIRISI

 sadecestring=/[01][0-2][/\.-]?[0-3][0-9][/\.-]\d{4}/;——-YARI HATALI–200009 YANI 4 BASAMAKTAN FAZLA GIRERSEN HATA VERIYOR.

[01]—-BASTAKI RAKAM YA  0  YADA  1  OLACAK.
[0-9]—TEK BASAMAK OLUYOR ALACAGI DEGERLER 0 ILE  9   ARALIGINDA OLABILIR SADECE.
[01][0-9]—00-01-02-03……..10-11-12…….19   A  KADAR DEGER ALABILIR.
……\—-BU SOLA YATIK CIZGI OLDUGUNDAN BUNDAN SONRA GELEN  OZEL KARAKTERLERIN STRINGE DAHIL OLMASINI SAGLAR.
 sadecestring=/(^[0?][1-9](/.-)(^[01][0-9])+$/;——–HATALIDIR
 sadecestring=/^(05)[0-9][0-9][1-9]([0-9]){6}+$/;

JAVASCRİPT İLE YAPILMIS BİR ÖRNEK


var sadecestring=/^(05)[0-9][0-9][1-9]([0-9]){6}+$/;
function deneme(){
var ad = document.getElementById(‘text_ad’).value;
if(ad==""){
    alert(‘kullanıcı adı giriniz’)
    document.getElementById(‘text_ad’).focus();
    return false;
}
if(!ad.match(sadecestring)){
    alert("yanlışşş!");
    return false;
}
else
 alert(‘doğruu’)
}

Yazi Serkan Keske Aittir ve Burada yayinlanmistir..

2 YORUMLAR

  1. benim gibi acemiler daha cok yüzeysel anlamdaki bilgileri kullaniyoruz ;)
    saol kardesim
    sahiden öncelikli bilgileri paylasiyor olmaniz da dikkate deger…
    tebrik ediyorum

    sevgilerimle

    y..icik almanya

Bir Cevap Yazın