JavaScriptда регулярный ифодаларга кириш
Регулярный ифодалар - бу мураккаб излаш ва алмаштириш (ёки жуда излаш) учун махсус буйруқлардир. Улар жуда қизиқ ишларни бажаришга имкон беради, аммо, афсуски, ўрганишда бир оз қийин.
JavaScriptда регулярный ифодалар билан ишлаш учун
бир нечта усуллар мавжуд. Биз улар билан replace
усули мисолида таниша бошлаймиз - сиз бу усул билан
аллакачон танишсиз: унинг биринчи параметри нимани
алмаштиришни, иккинчиси эса - нимага алмаштиришни
ўз ичига олади. Усулнинг ўзи эса алмаштириш амалга
ошириладиган сатрга қўлланилади:
'bab'.replace('a', '!'); // 'b!b' қайтаради
Бу усулнинг биринчи параметрига жуда сатрни эмас,
балки регулярный ифодани ҳам ўтказа оламиз.
Регулярный ифода слэшлар / ичида жойлаштан
буйруқлар тўпламидан иборат. Бу слэшлар регулярный
ифодаларнинг чегараловчилари деб аталади.
Регулярный ифодаларнинг ўзи икки турдаги белгилардан ташкил топган: ўзини ўзи ифодаловчилар ва махсус белгилар деб аталувчи буйруқ-белгилар.
Ҳарфлар ва рақамлар ўзини ўзи ифодалайди. Куйидаги
мисолда биз регулярный ифода ёрдамида 'a'
ҳарфини ! га алмаштирамиз:
'bab'.replace(/a/, '!'); // 'b!b' қайтаради
Аммо нуқта махсус белги бўлиб, istalgan belgini
ифодалайди. Куйидаги мисолда биз шундай намуна
буйича сатрни топамиз: 'x' ҳарфи, сўнгра
исталган белги, яна 'x' ҳарфи:
'xax eee'.replace(/x.x/, '!'); // '! eee' қайтаради
Чегараловчилардан кейин модификаторларни
ёзиш мумкин - бу регулярный ифоданинг умумий
хусусиятларини ўзгартирадиган буйруқлардир.
Мисол учун, g модификатори глобал излаш
ва алмаштириш режимини ёқади - унсиз регуляр
фақат биринчи мос келишни излайди, ун bilan esa -
барча мос келишларни.
Куйидаги мисолда g модификатори кўрсатилмаган
ва регуляр фақат биринчи мос келишни топади:
'aab'.replace(/a/, '!'); // '!ab' қайтаради
Энди эса регуляр барча мос келишларни топади:
'aab'.replace(/a/g, '!'); // '!!b' қайтаради
Сатр берилган:
let str = 'ahb acb aeb aeeb adcb axeb';
'ahb', 'acb', 'aeb'
сатрларини топадиган регулярни ёзинг:
'a' ҳарфи, исталган белги,
'b' ҳарфи.
Сатр берилган:
let str = 'aba aca aea abba adca abea';
'abba', 'adca', 'abea'
сатрларини топадиган регулярни ёзинг:
'a' ҳарфи, 2
исталган белги, 'a' ҳарфи.
Сатр берилган:
let str = 'aba aca aea abba adca abea';
'adca' ни олмастан, 'abba' ва
'abea' сатрларини топадиган регулярни ёзинг.