JavaScript тұрақты өрнектеріндегі таңбалар топтары
Бірден бүкіл таңбалар тобын таңдауға мүмкіндік беретін
арнайы командалар бар. <\d командасы
0-ден 9-ға дейінгі санды білдіреді.
<\w командасы санды, латын әрпін
немесе асты сызық таңбасын белгілейді. <\s командасы
бос орынды немесе бос орын таңбасын білдіреді:
бос орын, жол ағымы, табуляция. Үлкен әріппен жазу арқылы
команданың мәнін инверттеуге болады: мысалы, егер <\d - сан болса,
онда <\D - сан емес.
Мысал
Барлық сандарды тауып көрейік:
let str = '1 12 123';
let res = str.replace(/\d/g, '!');
Нәтижесінде айнымалыға мынаны жазады:
'! !! !!!'
Мысал
Қайталау операторлары командалар-топтарды
тұтас деп санайды, яғни топтастыру жақшалары
қажет емес. Келесі мысалда іздеу үлгісі
мынаны көрсетеді: <0-ден 9-ға дейінгі сан
бір немесе одан да көп рет:
let str = '1 12 123 abc @@@';
let res = str.replace(/\d+/g, '!');
Нәтижесінде айнымалыға мынаны жазады:
'! ! ! abc @@@'
Мысал
Келесі мысалда іздеу үлгісі мынаны көрсетеді:
<кез келген нәрсе бір немесе одан да көп рет,
бірақ 0-ден 9-ға дейінгі сан емес:
let str = '123abc3@@';
let res = str.replace(/\D+/g, '!');
Нәтижесінде айнымалыға мынаны жазады:
'123!3!'
Мысал
Бұл мысалда іздеу үлгісі мынаны көрсетеді: <бос орын таңбасы бір рет:
let str = '1 12 123 abc @@@';
let res = str.replace(/\s/g, '!');
Нәтижесінде айнымалыға мынаны жазады:
'1!12!123!abc!@@@'
Мысал
Бұл мысалда іздеу үлгісі мынаны көрсетеді:
<бос орын ЕМЕС таңбасы бір немесе одан да көп рет.
Бос орындармен бөлінген барлық жол тармақтары ауыстырылады
<'!'-ге:
let str = '1 12 123 abc @@@';
let res = str.replace(/\S+/g, '!');
Нәтижесінде айнымалыға мынаны жазады:
'! ! ! ! !'
Мысал
Бұл мысалда іздеу үлгісі мынаны көрсетеді:
<сан немесе әріп бір немесе одан да көп рет.
Сандар мен әріптерден тұратын барлық жол тармақтары
ауыстырылады <'!'-ге:
let str = '1 12 123a Abc @@@';
let res = str.replace(/\w+/g, '!');
Нәтижесінде айнымалыға мынаны жазады:
'! ! ! ! @@@'
Мысал
Бұл мысалда іздеу үлгісі мынаны көрсетеді:
<сан ЕМЕС және әріп ЕМЕС бір немесе одан да көп рет.
Біздің жағдайда бұл анықтамаға сәйкес келеді
<'@@@' және барлық бос орындар (олар да
сандар да, әріптер де емес). Соңында бір
<'!' екеніне назар аударыңыз - оған
<' @@@' жолы түрлендірілді - алдында
бос орын бар:
let str = '1 12 123 Abc @@@';
let res = str.replace(/\W+/g, '!');
Нәтижесінде айнымалыға мынаны жазады:
'1!12!123!Abc!'
Практикалық тапсырмалар
Жол берілген:
let str = 'a1a a2a a3a a4a a5a aba aca';
Тұрақты өрнек жазыңыз, ол табады
<шеттерінде <'a' әрпі тұрған жолдарды,
ал олардың арасында бір сан.
Жол берілген:
let str = 'a1a a22a a333a a4444a a55555a aba aca';
Тұрақты өрнек жазыңыз, ол табады
<шеттерінде <'a' әрпі тұрған жолдарды,
ал олардың арасында кез келген сандар саны.
Жол берілген:
let str = 'aa a1a a22a a333a a4444a a55555a aba aca';
Тұрақты өрнек жазыңыз, ол табады
<шеттерінде <'a' әрпі тұрған жолдарды,
ал олардың арасында кез келген сандар саны (соның
ішінде нөл сан да, яғни <'aa' жолы).
Жол берілген:
let str = 'avb a1b a2b a3b a4b a5b abb acb';
Тұрақты өрнек жазыңыз, ол табады келесі түрдегі жолдарды:
<шеттерінде <'a' және <'b' әрпі тұрған,
ал олардың арасында - сан емес және бос орын емес.
Жол берілген:
let str = 'ave a#b a2b a$b a4b a5b a-b acb';
Тұрақты өрнек жазыңыз, ол табады келесі түрдегі жолдарды:
<шеттерінде <'a' және <'b' әрпі тұрған,
ал олардың арасында - әріп емес, сан емес және бос орын емес.
Жол берілген:
let str = 'ave a#a a2a a$a a4a a5a a-a aca';
Тұрақты өрнек жазыңыз, ол барлық бос орындарды ауыстырады
<'!'-ге.