JavaScript бейнелеу өрнектеріндегі бұйра жақшалар
'+', '*', '?' операторлары
жақсы, бірақ олардың көмегімен нақты қайталау санын
көрсету мүмкін емес. Бұл жағдайда
{} операторы көмекке келеді.
Ол келесідей жұмыс істейді: {5}
- бес рет қайталау, {2,5} – екіден беске дейін қайталанады
(екеуі де қоса алғанда), {2,}
- екі және одан да көп рет қайталанады. Мына нұсқаның жоқ екеніне назар аударыңыз
- {,2}. Мысалдарға қараңыз:
Мысал
Бұл мысалда іздеу үлгісі келесідей:
'x' әрпі, 'a' әрпі бір
немесе екі рет, 'x' әрпі:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,2}x/g, '!');
Нәтижесінде айнымалыға мыналар жазылады:
'xx ! ! xaaax'
Мысал
Бұл мысалда іздеу үлгісі келесідей:
'x' әрпі, 'a' әрпі екі
рет және одан да көп, 'x' әрпі:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{2,}x/g, '!');
Нәтижесінде айнымалыға мыналар жазылады:
'xx xax ! !'
Мысал
Бұл мысалда іздеу үлгісі келесідей:
'x' әрпі, 'a' әрпі үш
рет, 'x' әрпі:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{3}x/g, '!');
Нәтижесінде айнымалыға мыналар жазылады:
'xx xax xaax !'
Мысал
Бұл мысалда іздеу үлгісі келесідей:
'a' әрпі он рет:
let str = 'aaa aaaaaaaaaa aaa';
let res = str.replace(/a{10}/g, '!');
Нәтижесінде айнымалыға мыналар жазылады:
'aaa ! aaa'
Мысал
Бұл мысалда код авторы келесі үлгіні қалаған:
'x' әрпі, 'a' әрпі үш
рет және одан аз, 'x' әрпі,
бірақ, өкінішке орай, бұл - {,3} - жұмыс істемейді.
Анық көрсету керек:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,3}x/g, '!');
Нәтижесінде айнымалыға мыналар жазылады:
'xx ! ! !'
Мысал
Нөл де рұқсат етілген:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{0,3}x/g, '!');
Нәтижесінде айнымалыға мыналар жазылады:
'! ! ! !'
Практикалық тапсырмалар
Мына жол берілген:
let str = 'aa aba abba abbba abbbba abbbbba';
'abba', 'abbba', 'abbbba'
жолдарын және оларды ғана табатын бейнелеу өрнегін жазыңыз.
Мына жол берілген:
let str = 'aa aba abba abbba abbbba abbbbba';
'aba' тәрізді жолдарды табатын бейнелеу өрнегін жазыңыз,
онда 'b' 3-тен кем рет кездеседі
(қоса алғанда).
Мына жол берілген:
let str = 'aa aba abba abbba abbbba abbbbba';
'aba' тәрізді жолдарды табатын бейнелеу өрнегін жазыңыз,
онда 'b' 4-тен көп рет кездеседі
(қоса алғанда).