ماڈیول اسباق (3/4)
کال بیک کے ساتھ تبدیل کریں۔
اگر متبادل سٹرنگ کافی نہیں ہے تو فنکشن پاس کریں:
str.replace(regex, (match, ...groups) => string) کال بیک کی درخواست کی جاتی ہے۔
ہر میچ کے لیے اور اس کی واپسی کی قیمت متبادل بن جاتی ہے۔
'prezzi: 10 20 30'.replace(/\d+/g, (m) => Number(m) * 1.22);
// "prezzi: 12.2 24.4 36.6" (22% VAT)کال بیک دلائل
str.replace(regex, (match, p1, p2, ..., offset, original, groups) => ...);match-- پورا میچ۔p1,p2, \u2026 -- کیپچر کردہ گروپس ترتیب میں۔offset-- اصل سٹرنگ میں میچ کا اشاریہ۔original-- پوری تار۔groups-- نام والے گروپس کے ساتھ آبجیکٹ (اگر کوئی ہے)۔
'2024-03-15'.replace(/(\d{4})-(\d{2})-(\d{2})/, (_, a, m, g) => `${g}/${m}/${a}`);
// "15/03/2024"کال بیک آپ کو مناسب طاقت دیتا ہے: تجزیہ، تلاش، تبدیلی، HTML فرار\u2026 ہر وہ چیز جو ایک جامد سٹرنگ نہیں کر سکتی۔
کال بیکس کو تبدیل کرنے میں اعلی درجے کے دلائل
کال بیک فنکشن کو کئی دلائل موصول ہوتے ہیں: مکمل میچ، ہر کیپچر گروپ، پورے متن میں میچ کا آفسیٹ، اور اصل ان پٹ سٹرنگ۔ یہ نفیس سیاق و سباق پر مبنی تبدیلی کی منطق کو قابل بناتا ہے۔
اسے آزمائیں
متن میں ہر عدد کو تلاش کریں۔ (اس کی جگہ آپ اسے دوگنا کرنے کے لیے `(m) => نمبر (m) * 2` پاس کریں گے۔)
اشارہ دکھائیں۔
استعمال کریں \\d+ (ایک یا زیادہ ہندسوں) ہر عدد کو ایک ہی میچ کے طور پر کیپچر کرنے کے لیے۔
3 کوششوں کے بعد حل دستیاب ہے۔
ورزش کا جائزہ لیں۔
ہر ای میل تلاش کریں۔ اس طرح ایک کال بیک اسے `***@domain` میں تبدیل کر سکتا ہے۔
اشارہ دکھائیں۔
صارف نام اور ڈومین میں نقطوں کو قبول کرنے کے لیے کلاس کو [\\w.]+ تک وسیع کریں۔
3 کوششوں کے بعد حل دستیاب ہے۔
اضافی چیلنج
Match every word consisting of letters in the text, so it can be transformed to uppercase via a callback.
اشارہ دکھائیں۔
[a-zA-Z]+ کے ساتھ آسان حروف تلاش کریں۔
3 کوششوں کے بعد حل دستیاب ہے۔