RegEx fonksiyonu javascript
Amplify’d from www.cfcube.com
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.
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ı.
en az 4 en çok 10 karakterlik şifre.
w{4-10}
ş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ı.
xxx xxx xx xx formatında telefon bilgisi.
d{3} d{3} d{2} d{2}
tel
Örnek uygulama
1* : ,1,11,111
1+ : 1,11,111
gruplamadır
1 veya daha fazla önceki karakterlerin tekrarlanmasıdır
0 veya daha fazla önceki karakterlerin tekrarlanmasıdır
açıklama
*
+
(11)+ : 11,1111
6|7 : 6 veya 7
iki seçenekten birisidir
belirtilen aralık içindeki karakterlerden birisi
belirtilen aralık dışındaki karakterlerden birisi
yeni satır harici tüm karakterler
boşluk karakteri
boşluk karakteri haricindeki tüm karakterler
rakamsal tüm karakterler
rakam olmayan tüm karakterler
kelimelerde kullanılan tüm karakterler
önceki karakterlerin veya grubun kaç adet tekrarlanacağını belirtir.
{}
w
D
d
S
s
.
[^]
[]
|
()
s+ : , ,
.* : , 1, asad,123
[^1-3] : 1,2 ve 3 dışındaki tüm karakterler
[1-3] : 1,2 veya 3
S+ : asdasdas,21321
d+ : 12312,321
D+ : adas,adsa
w+ : ali
a{1}: a
b{1-3}: b,bb veya bbb
işaret
5.) “{}” Karakterleri
Kendinden önce gelen karakterin belirtilen sayıda tekrar etmesini sağlar.
1- [a-zA-Z]{1,10}—sadece * string* girişi için(1 ıle 10 karakter uzunlugunda olabilşir,biz degiştirebiliriz bu oranları)
3- ^d+$---sadece *sayı* girişi için kullanılır.
2- [a-zA-Z0-9]{1,10}---string+sayı girişi için(köşeli parantezlere ektra dahil etmek istediklerimizi yazabiliriz.)
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
- validate="/[dw]{3,}/" –EN AZ 3 CHARACTER OLMALI UZUNLUGU VE ICERIGI KELIME YADA SAYI OLABILIR .
- validate="/^([0-9]{11})$/ " -11 RAKAMLIK TELEFON NUMARASI
- validate="^([0-9]){2}(/|-){1}([0-9]){2}(/|-){1}([0-9]){4}$/"-TARIH FORMATI (dd/mm/yyyy)
- validate="/^([w]+)(.[w]+)*@([w]+)(.[w]{2,3}){1,2}$/"-EMAIL
ÖRNEKLER
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
v
1.) “^” Karakteri
Satır başını ifade eder.
2.) “$” Karakteri
Satır sonunu ifade eder.
3.) “[]” Karakterleri
Bir arrayi yada aralığı temsil eder.
“[a-z]edir” şeklindeki kullanım aralık belirtmeye yarar.
“[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.
See this Amp at http://amplify.com/u/apc4l
Yorumlar
Yorum Gönder