JavaScript-də RegExp ilə Regular ifadə sətiri
Regular ifadələr sətir şəklində təqdim edilə bilər. Bu, əgər dəyişənləri regular ifadələrə əlavə etmək və ya onları dinamik şəkildə formalaşdırmaq lazımdırsa, əlverişlidir.
Gəlin bir nümunəyə baxaq. Tutaq ki, bizim belə bir sətirimiz var:
javascriptlet str = 'img.png';
Tutaq ki, bu sətirə aşağıdakı regular ifadəni tətbiq edirik:
javascriptlet reg = /\.(png|jpg)$/;
let res = str.match(reg);
Gəlin bu regular ifadəni
sətir şəklində yenidən yazaq. Bu,
xüsusi RegExp obyekti vasitəsilə edilir:
javascriptlet reg = new RegExp('\\.(png|jpg)$');
let res = str.match(reg);
Gəlin indi regular ifadənin bir hissəsini dəyişənə çıxaraq və onu birləşdirmə vasitəsilə əlavə edək:
javascriptlet pat = 'png|jpg';
let reg = new RegExp('\\.(' + pat + ')$');
let res = str.match(reg);
İndi isə dəyişəni şablon sətirləri vasitəsilə əlavə edək:
javascriptlet pat = 'png|jpg';
let reg = new RegExp(`\\.(${pat})$`);
let res = str.match(reg);
İndi isə regular ifadənin bir hissəsini massivdən formalaşdıraq:
javascriptlet exts = ['png', 'jpg'];
let pat = exts.join('|');
let reg = new RegExp(`\\.(${pat})$`);
let res = str.match(reg);
Praktiki tapşırıqlar
Domen zonalarının adlarını ayrı bir dəyişənə çıxarın:
javascriptlet reg = /^[a-z]+\.(ru|by|ua)$/;
let res = reg.test(str);
Əvvəlki tapşırığı domen zonalarının massiv şəklində saxlanıldığını nəzərə alaraq dəyişdirin:
javascriptlet arr = ['ru', 'by', 'ua'];