JavaScript-də Regulyar İfadələrə Giriş
Regulyar ifadələr - mürəkkəb axtarış və əvəzetmə (və ya sadəcə axtarış) üçün istifadə olunan əmrlərdir. Onlar çox maraqlı şeylər etməyə imkan verir, lakin, təəssüf ki, mənimsənilməsi olduqca çətindir.
JavaScript-də regulyar ifadələrlə işləmək üçün
bir neçə metod var. Biz onlarla replace
nümunəsində tanış olmağa başlayacıq
- siz artıq bu metodla tanışsınız: o, birinci
parametr kimi nəyi dəyişdirməli, ikinci parametr kimi isə
- nə ilə əvəz etməli olduğunu qəbul edir. Metodun özü isə
dəyişikliyin edildiyi sətirə tətbiq olunur:
'bab'.replace('a', '!'); // qaytaracaq 'b!b'
Bu metodun birinci parametri kimi
sadəcə sətir deyil, regulyar ifadə də ötürülə bilər.
Regulyar ifadə, slashlar / içərisində yerləşən
əmrlər dəstidir. Bu
slashlara regulyar ifadələrin sərhədləndiriciləri deyilir.
Regulyar ifadələrin özləri iki növ simvoldan ibarətdir: özlərini təmsil edən simvollar və xüsusi simvollar adlanan əmr simvolları.
Hərflər və rəqəmlər özlərini təmsil edir. Aşağıdakı
nümunədə biz regulyar ifadə vasitəsilə
'a' hərfini ! ilə əvəz edəcəyik:
'bab'.replace(/a/, '!'); // qaytaracaq 'b!b'
Nöqtə isə xüsusi simvoldur
və istənilən simvolu təmsil edir. Aşağıdakı
nümunədə biz sətri belə bir şablona uyğun tapacağıq:
'x' hərfi, sonra istənilən simvol, sonra
yenidən 'x' hərfi:
'xax eee'.replace(/x.x/, '!'); // qaytaracaq '! eee'
Sərhədləndiricilərdən sonra modifikatorlar yazmaq olar
- regulyar ifadənin ümumi xassələrini dəyişən
əmrlər. Məsələn, g modifikatoru
qlobal axtarış və əvəzetmə rejimini aktivləşdirir
- onsuz regulyar ifadə yalnız
ilk uyğunluğu axtarar, onunla isə - bütün uyğunluqları.
Aşağıdakı nümunədə g modifikatoru
göstərilməyib və regulyar ifadə yalnız ilk
uyğunluğu tapacaq:
'aab'.replace(/a/, '!'); // qaytaracaq '!ab'
İndi isə regulyar ifadə bütün uyğunluqları tapacaq:
'aab'.replace(/a/g, '!'); // qaytaracaq '!!b'
Sətir verilmişdir:
let str = 'ahb acb aeb aeeb adcb axeb';
'a' hərfi, istənilən simvol,
'b' hərfi şablonuna uyğun olaraq
'ahb', 'acb', 'aeb'
sətirlərini tapacaq regulyar ifadə yazın.
Sətir verilmişdir:
let str = 'aba aca aea abba adca abea';
'a' hərfi, 2
istənilən simvol, 'a' hərfi şablonuna uyğun olaraq
'abba', 'adca', 'abea'
sətirlərini tapacaq regulyar ifadə yazın.
Sətir verilmişdir:
let str = 'aba aca aea abba adca abea';
'adca' sətrini əhatə etmədən,
'abba' və 'abea' sətirlərini
tapacaq regulyar ifadə yazın.