⊗jsSpRERMC 127 of 294 menu

JavaScript тұрақты өрнектеріндегі replace әдісіндегі коллбэк

Replace әдісі екінші параметр ретінде тек қана жолды емес, сонымен қатар коллбэк функциясын да қабылдай алады, ол әрбір табылған сәйкестік үшін қолданылады. Тұрақты өрнекпен табылған әрбір жол шығарымды осы жол үшін қайтаратын функциямен ауыстырылады.

Бұл функцияға параметрлер беруге болады: бірінші параметрге табылған жол, екінші параметрге - бірінші түйіспе, үшінші параметрге - екінші түйіспе және т.с.с. - тұрақты өрнекте қанша түйіспе болса, сонша параметр жасауға болады.

Соңғы параметрден бір бұрынғыға табылған сәйкестіктің позициясы, ал соңғысына - іздеу жүргізілетін барлық жол салынады.

Мұның бәрі қалай жұмыс істейді - тәжірибелік мысалдармен қарастырамыз.

Мысал

Сандары бар жол берілген делік:

let str = '2 3 4 5';

Осы сандарды олардың квадраттарына ауыстырайық. Алдымен коллбэк функциясында өз сандарымызды кезекпен консольге шығарайық:

str.replace(/\d+/g, function(match) { console.log(match); });

Біздің код алдымен '2', сосын '3', '4' және '5' шығарады. Яғни match айнымалысына тұрақты өрнек тапқан сол жолдар кезекпен түседі.

Енді есепті соңына дейін шешейік - match-ты квадратқа шығарып, оны return көмегімен қайтарамыз. Табылған екі үшін 4 қайтарылып, екілік осы төртке ауысады, табылған үш үшін 9 қайтарылып, үштік осы тоғызға ауысады - және т.с.с.:

let result = str.replace(/\d+/g, function (match) { return match**2; }); console.log(result); // шығарады '4 9 16 25'

Мысал

Енді жолда '2+3=' түріндегі конструкциялар берілген делік:

let str = '2+3= 4+5= 6+7=';

Теңдіктен кейін сәйкес сандардың қосындылары салынатындай етейік. Яғні біздің жол мынаған айналуы керек:

'2+3=5 4+5=9 6+7=13'

Есепті шешу үшін тағы да тәжірибе жасайық - бірінші және екінші қосылғыштарды бөлек түйіспелерге бөлейік:

str.replace(/(\d+)\+(\d+)=/g, function (match0, match1, match2) { console.log(match0, match1, match2); });

Енді есепті түгелімен шешейік: әрбір табылған жол үшін бірінші және екінші түйіспелерді қосып, нөлдік түйіспені (табылған жолды, мысалы '2+3=') алып, оған нәтижені қосып, мұның бәрін return арқылы қайтарамыз:

let result = str.replace(/(\d+)\+(\d+)=/g, function(match0, match1, match2) { let sum = Number(match1) + Number(match2); return match0 + sum; }); console.log(result);

Тәжірибелік есептер

Мына жол берілген:

let str = 'aaa [2] bbb [3] ccc [12] ddd';

Жақшада тұрған сандарды тауып, оларды екі есе үлкейтіңіз. Яғні біздің жол мынаған айналуы керек:

'aaa [4] bbb [6] ccc [24] ddd'

Мына жол берілген:

let str = '123 456 789';

Барлық сандарды тауып, олардың сандарын кері ретпен ауыстырыңыз. Яғні біздің жол мынаған айналуы керек:

'321 654 987'

Күндері бар жол берілген:

let str = '31.12.2025 30.11.2024 29.10.2023';

Барлық күндерді тауып, оларды басқа форматқа түрлендіріңіз, мына жол шығуы үшін:

'2025-12-31 2024-11-30 2023-10-29'
Қазақ
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართული한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Біз сайттың жұмысы, аналитика және персонализация үшін cookie файлдарын қолданамыз. Деректерді өңдеу Құпиялылық саясаты бойынша жүреді.
барлығын қабылдау баптау қабылдамау