जावास्क्रिप्ट इसके लिए कोई डायरेक्ट तरीका नहीं देता। इसके लिए हम slice मेथड का उपयोग कर सकते हैं। slice मेथड स्ट्रिंग का एक सेक्शन निकालता है और नई स्ट्रिंग लौटाता है।
किसी स्ट्रिंग में पोजीशन x पर दूसरी स्ट्रिंग इंसर्ट करने के लिए, हम निम्नलिखित फंक्शन लिख सकते हैं:
उदाहरण
function insertAtX(str1, str2, x) {
return `${str1.slice(0, x)}${str2}${str1.slice(x)}`;
}
console.log(insertAtX("Hello World", "Test", 5));
आउटपुट
HelloTest World
यह एज केसेस हैंडल नहीं करता। आप आवश्यकतानुसार उनको हैंडल कर सकते हैं।
मजबूत वर्जन
function insertAt(str, insertStr, position) {
// इनपुट वैलिडेशन
if (typeof str !== 'string' || typeof insertStr !== 'string') {
throw new TypeError('दोनों आर्गुमेंट्स स्ट्रिंग होने चाहिए');
}
// पोजीशन क्लैंप करें
const pos = Math.max(0, Math.min(position, str.length));
return str.slice(0, pos) + insertStr + str.slice(pos);
}
// उपयोग
console.log(insertAt("Hello World", "Beautiful ", 6)); // "Hello Beautiful World"
console.log(insertAt("Hello", "X", 10)); // "HelloX" (एंड पर)
console.log(insertAt("Hello", "X", -5)); // "XHello" (शुरुआत पर)
अन्य दृष्टिकोण
// Array.from के साथ (Unicode-सेफ)
function insertAtUnicode(str, insertStr, pos) {
const chars = [...str]; // ग्राफेम क्लस्टर्स के लिए Array.from बेहतर
chars.splice(pos, 0, insertStr);
return chars.join('');
}
// String.prototype.insert (पॉलीफिल)
String.prototype.insert = function(insertStr, pos) {
return this.slice(0, pos) + insertStr + this.slice(pos);
};
console.log("Hello World".insert("Beautiful ", 6));