مرکزی مواد پر جائیں
ماڈیول 7 · سبق 3 از 4کورس میں 27/32~12 min
ماڈیول اسباق (3/4)

کال بیک کے ساتھ تبدیل کریں۔

اگر متبادل سٹرنگ کافی نہیں ہے تو فنکشن پاس کریں: str.replace(regex, (match, ...groups) => string) کال بیک کی درخواست کی جاتی ہے۔ ہر میچ کے لیے اور اس کی واپسی کی قیمت متبادل بن جاتی ہے۔

JS
'prezzi: 10 20 30'.replace(/\d+/g, (m) => Number(m) * 1.22);
// "prezzi: 12.2 24.4 36.6" (22% VAT)

کال بیک دلائل

JS
str.replace(regex, (match, p1, p2, ..., offset, original, groups) => ...);
  • match -- پورا میچ۔
  • p1, p2, \u2026 -- کیپچر کردہ گروپس ترتیب میں۔
  • offset -- اصل سٹرنگ میں میچ کا اشاریہ۔
  • original -- پوری تار۔
  • groups -- نام والے گروپس کے ساتھ آبجیکٹ (اگر کوئی ہے)۔
JS
'2024-03-15'.replace(/(\d{4})-(\d{2})-(\d{2})/, (_, a, m, g) => `${g}/${m}/${a}`);
// "15/03/2024"

کال بیک آپ کو مناسب طاقت دیتا ہے: تجزیہ، تلاش، تبدیلی، HTML فرار\u2026 ہر وہ چیز جو ایک جامد سٹرنگ نہیں کر سکتی۔

کال بیکس کو تبدیل کرنے میں اعلی درجے کے دلائل

کال بیک فنکشن کو کئی دلائل موصول ہوتے ہیں: مکمل میچ، ہر کیپچر گروپ، پورے متن میں میچ کا آفسیٹ، اور اصل ان پٹ سٹرنگ۔ یہ نفیس سیاق و سباق پر مبنی تبدیلی کی منطق کو قابل بناتا ہے۔

اسے آزمائیں

ورزش#regex.m7.l3.e1
کوششیں: 0لوڈ ہو رہا ہے…

متن میں ہر عدد کو تلاش کریں۔ (اس کی جگہ آپ اسے دوگنا کرنے کے لیے `(m) => نمبر (m) * 2` پاس کریں گے۔)

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

استعمال کریں \\d+ (ایک یا زیادہ ہندسوں) ہر عدد کو ایک ہی میچ کے طور پر کیپچر کرنے کے لیے۔

3 کوششوں کے بعد حل دستیاب ہے۔

ورزش کا جائزہ لیں۔

ورزش#regex.m7.l3.e2
کوششیں: 0لوڈ ہو رہا ہے…

ہر ای میل تلاش کریں۔ اس طرح ایک کال بیک اسے `***@domain` میں تبدیل کر سکتا ہے۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

صارف نام اور ڈومین میں نقطوں کو قبول کرنے کے لیے کلاس کو [\\w.]+ تک وسیع کریں۔

3 کوششوں کے بعد حل دستیاب ہے۔

اضافی چیلنج

ورزش#regex.m7.l3.e3
کوششیں: 0لوڈ ہو رہا ہے…

Match every word consisting of letters in the text, so it can be transformed to uppercase via a callback.

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

[a-zA-Z]+ کے ساتھ آسان حروف تلاش کریں۔

3 کوششوں کے بعد حل دستیاب ہے۔