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:
let str = 'img.png';
Tutaq ki, bu sətirə aşağıdakı regular ifadəni tətbiq edirik:
let 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:
let 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:
let 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:
let 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:
let 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:
let 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:
let arr = ['ru', 'by', 'ua'];