मैं किसी दिए गए स्ट्रिंग के भीतर सबस्ट्रिंग्स की एक जोड़ी की सभी घटनाओं को स्वैप करने की कोशिश कर रहा हूं।मैं स्ट्रिंग के भीतर सबस्ट्रिंग्स को कैसे स्वैप कर सकता हूं?
उदाहरण के लिए, मैं "कॉफी" की सभी घटनाओं को "चाय" और "कॉफी" के साथ "चाय" की सभी घटनाओं को प्रतिस्थापित करना चाहूंगा।
यह पहली बात मैं के बारे में सोचा है:
var newString = oldString.replace(/coffee/g, "__").replace(/tea/g, "coffee").replace(/__/g, "tea");
यह समय के सबसे अधिक काम करता है, लेकिन अगर मेरी इनपुट स्ट्रिंग स्ट्रिंग "__" होता है, यह ठीक से काम नहीं करेगा।
मैं कुछ है कि भले ही मैं यह क्या इनपुट देने के काम करता है के लिए देख रहा हूँ, इसलिए मैं कुछ और सोचा और इस के साथ आया था:
var pieces = oldString.split("coffee");
for (var i = 0; i < pieces.length; i++)
pieces[i] = pieces[i].replace(/tea/g, "coffee");
var newString = pieces.join("tea");
यह ठीक काम करता है, लेकिन यह एक तरह से बदसूरत और अत्यधिक शब्द है। मैं अधिक संक्षिप्त कुछ के साथ आने की कोशिश की और मैं map function jQuery में बनाया इस्तेमाल किया यह साथ आने के लिए:
var newString = $.map(oldString.split("coffee"), function(piece) {
return piece.replace(/tea/g, "coffee");
}).join("tea");
यही बेहतर है लेकिन मैं अभी भी एक लग रहा है कुछ शानदार ढंग से सरल विधि है कि करने के लिए विफल हो रहा है है कि वहाँ है मेरे दिमाग में आओ। क्या यहां कोई आसान तरीका जानता है?