Merhaba,
Kendi ihtiyacım için bakınırken bir sitede Düzenli İfadeler'e (Regular Expressions ya da RegEx) yönelik temelden başlayan güzel bir yazı gördüm ve faydası dokunabileceğini düşünere Türkçeleştirmeye karar verdim. Umarım faydası dokunur.
Bildiğiniz gibi düzenli ifadeler form doğrulamanın en önemli parçası olup, aynı zamanda da metin aramalarında, değiştirmelerinde ve bot tarzı web crawl altyapılarında da yaygın şekilde kullanılmaktadır. Aşağıdaki yazıda Düzenli İfadeler'i anlamanız ve yazabilmeniz için yardımı dokunacak birkaç ipucunu bulacaksınız.
Aşama 1
Sembol | Açıklama |
^ | String Başlangıcı |
$ | String Sonu |
. | Herhangi Tek Bir Karakter |
+ | Bir ya da daha fazla karakter |
\ | Özel karakteri yoksaymak için (Escape) |
? | Sıfır ya da daha fazla karakter |
Örnekler:
Tam olarak "abc" ile eşleşsin:
var A =/^abc$/;
"abc" ile başlasın:
var B = /^abc/;
"abc" ile bitsin:
var C = /abc$/;
"abc" ve bir karaktere daha izin verilsin: (Ör: abcx)
var D = /^abc.$/;
"abc" ile başlayıp birden fazla karaktere daha izin verilsin: (Ör: abcxy)
var E = /^abc.+$/;
Tam olarak "abc.def" ile eşleşsin: (Nokta işaretinin yoksayıldığına (Escape'lendiğine) dikkat ediniz.)
var F = /^abc\.def$/;
"abc" ile başlayan herşey kabul edilsin: (Burada Sadece "abc" ya da "abcxyz123sda" olabilir.)
var G = /^abc.+?$/
Aşama 2
Kullanım | Açıklama |
[abc] | Herhangi bir karakter ile eşleşmeli |
[^abc] | Herhangi bir karakter ile eşleşmemeli |
[a-zA-Z0-9] | Küçük harfler, büyük harfler ve rakamlar |
[a-z-._] | Küçük harf a-z arası ve özel karakterler |
(.*?) | Aradaki her şeyi al |
(com|info) | “com” ya da “info” olmak zorundadır |
{2} | Tam olarak 2 karakter |
{2,3} | Minimum iki, maksimum üç karakter |
{2,} | İki karakterden fazla |
Şimdi bunların hepsini bir URL doğrulama için bir arada kullanalım:
var URL = /^(http|https|ftp):\/\/(www+\.)?[a-zA-Z0-9]+\.([a-zA-Z]{2,4})\/?/; URL.test(“http://mustafabugra.com”); // Geçerli URL.test(“http://www.mustafabugra.com”); // Geçerli URL.test(“https://mustafabugra.com/”); // Geçerli URL.test(“http://mustafabugra.com/index.php”); // Geçerli
Aşama 3
Kısa Hali | Karşılığı | Açıklama |
\d | [0-9] | Herhangi bir rakam değeri |
\D | [^0-9] | Rakam olmayan herhangi bir değer |
\w | [a-zA-Z0-9_] | Harf, Rakam ve Alt çizgi |
\W | [^a-zA-Z0-9_] | Harf, Rakam ve Alt çizgi olmayan |
\s | - | Boşluk (Beyaz boşluk) |
\S | - | Boşluk (Beyaz boşluk) olmayan değer |
Bir telefon numarası doğrulama örneği:
var number = /^(\+\d{2,4})?\s?(\d{10})$/; // telefon numarası şablonu number.test(1111111111); //Geçerli number.test(+111111111111); //Geçerli number.test(+11 1111111111); //Geçerli number.test(11111111); //Geçersiz
Umarım faydası dokunur.
İyi günler dilerim.