मान लीजिए, हमें एक फ़ंक्शन लिखना है, जैसे कि अनुवाद () जो एक स्ट्रिंग को पहले तर्क के रूप में स्वीकार करता है और उसके बाद कितने भी शब्द।
स्ट्रिंग में वास्तव में इस तरह के n $ चिह्न होंगे -
यह $0 अधिक $1 मात्र एक $2 है। फिर 3 तार होंगे जो संबंधित स्थानों को बदल देंगे।
उदाहरण के लिए -
यदि फ़ंक्शन कॉल इस प्रकार है -
translate('यह $0, $1 से अधिक है, केवल $2.', 'game', 'than', 'game');
फ़ंक्शन का आउटपुट होना चाहिए -
यह गेम सिर्फ एक गेम से बढ़कर है।
यह कार्यक्षमता कमोबेश जावास्क्रिप्ट में इंजेक्शन लगाने वाले टेम्पलेट की तरह है।
इसलिए, आइए इस फ़ंक्शन के लिए कोड लिखें -
हम यहां String.prototype.replace() विधि का उपयोग करेंगे। हम जानते हैं कि यदि हम सभी घटनाओं से मेल खाने के लिए रेगेक्स पैटर्न का उपयोग करते हैं और दूसरे पैरामीटर के रूप में फ़ंक्शन का उपयोग करते हैं, तो यह प्रत्येक मैच के लिए निष्पादित हो जाता है। हम यहां ठीक वैसा ही करेंगे।
ऐसा करने के लिए कोड होगा -
उदाहरण
const str ='यह $0 अधिक $1 सिर्फ एक $2' है; const translation =(str, ...texts) => {const regex =/\$(\d+)/gi; वापसी str.replace(regex, (आइटम, अनुक्रमणिका) => { वापसी पाठ [सूचकांक]; });};console.log(translate(str, 'game', 'just', 'game'));पूर्व>आउटपुट
कंसोल में आउटपुट होगा -
यह गेम सिर्फ एक गेम है