मुख्य सामग्री पर जाएं
मॉड्यूल 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 हर उस चीज़ से बचना जो एक स्थिर स्ट्रिंग नहीं कर सकती।

प्रतिस्थापित कॉलबैक में उन्नत तर्क

कॉलबैक फ़ंक्शन को कई तर्क प्राप्त होते हैं: पूर्ण मिलान, प्रत्येक कैप्चर किया गया समूह, संपूर्ण पाठ के भीतर मिलान का ऑफसेट और मूल इनपुट स्ट्रिंग। यह परिष्कृत संदर्भ-आधारित परिवर्तन तर्क को सक्षम बनाता है।

इसे अजमाएं

व्यायाम#regex.m7.l3.e1
प्रयास: 0लोड हो रहा है...

पाठ में प्रत्येक पूर्णांक खोजें. (प्रतिस्थापन में आप इसे दोगुना करने के लिए `(m) => Number(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 प्रयासों के बाद समाधान उपलब्ध है