⊗jsSpRERMC 127 of 294 menu

JavaScript ရှိ ရီဂျူလား ဖော်မြူလာများတွင် replace နည်းလမ်းထဲက callback

Replace နည်းလမ်းသည် ဒုတိယအကြောင်းအရာအဖြစ် စာကြောင်းတစ်ခုတည်းကိုသာမက callback function တစ်ခုကိုလည်း လက်ခံနိုင်ပြီး ၎င်းသည် တွေ့ရှိရသော တိုက်ဆိုင်မှုတိုင်းအတွက် အသုံးပြုမည်ဖြစ်သည်။ ရီဂျူလား ဖော်မြူလာမှ တွေ့ရှိသော စာကြောင်းခွဲတိုင်းကို ၎င်းစာကြောင်းခွဲအတွက် အဆိုပါ function မှ ပြန်လည်ပေးသော အရာဖြင့် အစားထိုးသွားမည်ဖြစ်သည်။

ဤ function ထဲသို့ parameter များ ပေးပို့နိုင်ပြီး- ပထမ parameter ထဲတွင် တွေ့ရှိသော စာကြောင်းကို ထည့်သွင်းမည်၊ ဒုတိယ parameter ထဲတွင် - ပထမ အုပ်စု (capturing group)၊ တတိယ parameter ထဲတွင် - ဒုတိယ အုပ်စု စသည်ဖြင့် ဖြစ်သည် - ရီဂျူလား ဖော်မြူလာထဲတွင် အုပ်စု အရေအတွက်ရှိသလောက် parameter အရေအတွက် ပြုလုပ်နိုင်သည်။

နောက်ဆုံးမတိုင်မီ parameter ထဲတွင် တွေ့ရှိသော တိုက်ဆိုင်မှု၏ တည်နေရာကို ထည့်သွင်းမည်ဖြစ်ပြီး နောက်ဆုံး parameter ထဲတွင် - ရှာဖွေမှုပြုလုပ်နေသော စာကြောင်းတစ်ခုလုံး ဖြစ်သည်။

ဤအရာများအားလုံး အလုပ်လုပ်ပုံကို လက်တွေ့ဥပမာများဖြင့် ဆွေးနွေးကြည့်ပါမည်။

ဥပမာ

ဂဏန်းများပါသော စာကြောင်းတစ်ခုကို ပေးထားသည်ဆိုပါစို့-

let str = '2 3 4 5';

ဤဂဏန်းများကို ၎င်းတို့၏ နှစ်ထပ်ကိန်းများအဖြစ် အစားထိုးကြည့်ပါစို့။ အစပိုင်းတွင် ကျွန်ုပ်တို့၏ ဂဏန်းများကို callback function ထဲတွင် အစဉ်လိုက် console ထဲသို့ ရိုးရိုးရှင်းရှင်း ထုတ်ကြည့်ပါစို့-

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

ကျွန်ုပ်တို့၏ code သည် ပထမဦးစွာ '2'၊ ထို့နောက် '3''4' နှင့် '5' တို့ကို ထုတ်ပေးမည်ဖြစ်သည်။ ဆိုလိုသည်မှာ match variable ထဲသို့ ရီဂျူလား ဖော်မြူလာမှ တွေ့ရှိထားသော စာကြောင်းများ အစဉ်လိုက် ဝင်ရောက်လာမည်ဖြစ်သည်။

ပြဿနာကို အပြီးသတ်ဖြေရှင်းကြည့်ပါစို့ - 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МакедонскиMelayuNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
ဝက်ဘ်ဆိုက် လုပ်ဆောင်ခြင်း၊ ဆန်းစစ်လေ့လာခြင်းနှင့် ပုဂ္ဂလိကပြုပြင်ခြင်းအတွက် ကျွန်ုပ်တို့သည် cookie များကို အသုံးပြုပါသည်။ ဒေတာများကို ပြုပြင်ခြင်းသည် ကိုယ်ရေးကိုယ်တာ မူဝါဒအတိုင်း ဖြစ်ပါသည်။
အားလုံးလက်ခံရန် ပြင်ဆင်ရန် ငြင်းပယ်ရန်