⊗jsSpRERMC 127 of 294 menu

JavaScript regulýar ifadelerinde replace metodunda callback

Replace metodu ikinji parametr hökmünde diňe setir däl, eýsem funksiýa-callback hem kabul edip biler, ol her tapylan gabat gelşe üçin ulanylýar. Regulýar ifadeniň tapýan her setir şol setir üçin funksiýanyň yzyna gaýtaran zady bilen çalşylar.

Bu funksiýa parametrler geçirip bolýar: birinji parametre tapylan setir ýerleşdiriler, ikinji parametre birinji gap, üçünji parametre ikinji gap we ş.m. - regulýar ifadäniň gap sany nýetýänçä parametrler ýasap bolýar.

Ikinjiden soňky parametre tapylan gabat gelşäniň pozisiýasy, soňky parametrede bolsa gözleg geçirilýän tutuş setir ýerleşdiriler.

Bütin bu işiň nähili işleýändigini amaly mysallar bilen düşünip alarys.

Mysal

Sanlar bilen setir berlen bolsun:

let str = '2 3 4 5';

Bu sanlary olaryň kwadratlary bilen çalşalyň. Ilki bilen, funksiýa-callback içinde sanlarymyzy yzygiderlikde konsola çykaralyň:

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

Biziň kodymyz ilki '2', soňra '3', '4' we '5' çykarar. Ýagny match üýtgeýjisine yzygiderlikde regulýar ifadeniň tapýan setirleri düşýär.

Meselemi iň soňuna çenli çözeliň - match-i kwadrata göterip we return bilen yzyna gaýtaryň. Şeýlelikde, tapylan iki üçin 4 gaýtarylýar we iki şol dört bilen çalşylýar, tapylan üç üçin 9 gaýtarylýar we üç şol dokuz bilen çalşylýar - we ş.m.:

let result = str.replace(/\d+/g, function (match) { return match**2; }); console.log(result); // '4 9 16 25' çykarar

Mysal

Indi setirde '2+3=' görnüşindäki gurluşlar berlen bolsun:

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

Barabar belgisinden soň degişli sanlaryň jemi goýulşy ýaly edeliň. Ýagny biziň setirimiz aşakdaky setire öwrülmeli:

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

Meselemi çözmek üçin ýene synag edeliň - birinji we ikinji goşulyjylary aýratyn gaplara bölüň:

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

Indi meselemi iň soňuna çenli çözeliň: her bir tapylan setir üçin birinji we ikinji gaplary jemläp, nol gapy (tapylan setiri, mysal üçin '2+3=') alarys, oňa netijäni goşarys we hemmesini return bilen yzyna gaýtararys:

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

Amaly meseleler

Setir berlen:

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

Ýaýlaryň içinde durýan sanlary tapyň we olary iki esse köpeldiň. Ýagny biziň setirimizden aşakdaky setir alynmaly:

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

Setir berlen:

let str = '123 456 789';

Hemme sanlary tapyň we olaryň sanlaryny tersine tertipde öwüriň. Ýagny biziň setirimizden aşakdaky setir alynmaly:

'321 654 987'

Sene bilen setir berlen:

let str = '31.12.2025 30.11.2024 29.10.2023';

Hemme seneleri tapyň we olary beýleki formatda üýtgediň, aşakdaky setir alnsyn:

'2025-12-31 2024-11-30 2023-10-29'
Türkmen
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkçeЎзбекOʻzbekTiếng Việt
Biz sahypanyň işlemegi, analitika we şahsyýetleşdirmek üçin cookie ulanýarys. Maglumatlaryň işlenişi Gizlinlik syýasaty boýunça amala aşyrylýar.
hemmesini kabul et sazlamak ret et