JavaScript-də requlyar ifadələrdə simvol qrupları
Birbaşa olaraq bütün simvol qruplarını seçməyə imkan verən
xüsusi əmrlər mövcuddur. \d əmri 0-dan 9-a qədər rəqəmi ifadə edir.
\w əmri rəqəmi, latın hərfini
və ya alt xətt simvolunu bildirir. \s əmri
boşluq və ya boşluq simvolunu ifadə edir:
boşluq, sətir atlaması, tabulyasiya. Əmrın
qiymətini böyük hərflə yazmaqla çevirmək olar:
məsələn, \d rəqəmdirsə,
\D isə rəqəm deyil.
Nümunə
Gəlin bütün rəqəmləri tapaq:
let str = '1 12 123';
let res = str.replace(/\d/g, '!');
Nəticədə dəyişənə aşağıdakı yazılacaq:
'! !! !!!'
Nümunə
Təkrar operatorları əmr-qruplarını
bir bütün hesab edir, yəni qruplaşdırıcı mötərizələr
lazım deyil. Aşağıdakı nümunədə axtarış şablonu
belə görünür: 0-dan 9-a qədər rəqəm
bir və ya daha çox dəfə:
let str = '1 12 123 abc @@@';
let res = str.replace(/\d+/g, '!');
Nəticədə dəyişənə aşağıdakı yazılacaq:
'! ! ! abc @@@'
Nümunə
Aşağıdakı nümunədə axtarış şablonu
belə görünür: bir və ya daha çox dəfə ixtiyari simvol,
lakin 0-dan 9-a qədər rəqəm deyil:
let str = '123abc3@@';
let res = str.replace(/\D+/g, '!');
Nəticədə dəyişənə aşağıdakı yazılacaq:
'123!3!'
Nümunə
Bu nümunədə axtarış şablonu belə görünür: boşluq simvolu bir dəfə:
let str = '1 12 123 abc @@@';
let res = str.replace(/\s/g, '!');
Nəticədə dəyişənə aşağıdakı yazılacaq:
'1!12!123!abc!@@@'
Nümunə
Bu nümunədə axtarış şablonu belə görünür:
boşluq simvolu OLMAYAN bir və ya daha çox dəfə.
Boşluqlarla ayrılmış bütün alt sətirlər
'!' ilə əvəz olunacaq:
let str = '1 12 123 abc @@@';
let res = str.replace(/\S+/g, '!');
Nəticədə dəyişənə aşağıdakı yazılacaq:
'! ! ! ! !'
Nümunə
Bu nümunədə axtarış şablonu belə görünür:
rəqəm və ya hərf bir və ya daha çox dəfə.
Rəqəmlərdən və hərflərdən ibarət olan bütün alt sətirlər
'!' ilə əvəz olunacaq:
let str = '1 12 123a Abc @@@';
let res = str.replace(/\w+/g, '!');
Nəticədə dəyişənə aşağıdakı yazılacaq:
'! ! ! ! @@@'
Nümunə
Bu nümunədə axtarış şablonu belə görünür:
rəqəm və hərf OLMAYAN bir və ya daha çox dəfə.
Bizim vəziyyətimizdə bu tərifə
'@@@' və bütün boşluqlar (onlar da həm də
rəqəm və hərf olmadığı üçün) daxildir. Diqqət yetirin ki,
sondaki bir '!' - ona
' @@@' sətiri - qarşısında
boşluq olan - çevrilib:
let str = '1 12 123 Abc @@@';
let res = str.replace(/\W+/g, '!');
Nəticədə dəyişənə aşağıdakı yazılacaq:
'1!12!123!Abc!'
Praktiki tapşırıqlar
Bir sətir verilib:
let str = 'a1a a2a a3a a4a a5a aba aca';
Elə bir requlyar ifadə yazın ki, kənarlarında 'a' hərfləri,
onların arasında isə bir rəqəm olan sətirləri tapsın.
Bir sətir verilib:
let str = 'a1a a22a a333a a4444a a55555a aba aca';
Elə bir requlyar ifadə yazın ki, kənarlarında 'a' hərfləri,
onların arasında isə ixtiyari sayda rəqəm olan sətirləri tapsın.
Bir sətir verilib:
let str = 'aa a1a a22a a333a a4444a a55555a aba aca';
Elə bir requlyar ifadə yazın ki, kənarlarında 'a' hərfləri,
onların arasında isə ixtiyari sayda rəqəm (o cümlədən
sıfır rəqəm, yəni 'aa' sətiri) olan sətirləri tapsın.
Bir sətir verilib:
let str = 'avb a1b a2b a3b a4b a5b abb acb';
Elə bir requlyar ifadə yazın ki, aşağıdakı növ sətirləri tapsın:
kənarlarında 'a' və 'b' hərfləri,
onların arasında isə - rəqəm və ya boşluq olmayan.
Bir sətir verilib:
let str = 'ave a#b a2b a$b a4b a5b a-b acb';
Elə bir requlyar ifadə yazın ki, aşağıdakı növ sətirləri tapsın:
kənarlarında 'a' və 'b' hərfləri,
onların arasında isə - hərf, rəqəm və ya boşluq olmayan.
Bir sətir verilib:
let str = 'ave a#a a2a a$a a4a a5a a-a aca';
Bütün boşluqları '!' ilə əvəz edən bir requlyar ifadə yazın.