जावास्क्रिप्ट में replace()
सब्सट्रेट को बदलने के लिए स्ट्रिंग ऑब्जेक्ट की विधि है। इस पद्धति के दो तर्क हो सकते हैं। पहला तर्क एक स्ट्रिंग या एक नियमित अभिव्यक्ति पैटर्न (regExp ऑब्जेक्ट) हो सकता है और दूसरा तर्क एक स्ट्रिंग या एक फ़ंक्शन हो सकता है। replace()
दोनों स्ट्रिंग तर्क रखने की विधि का एक उदाहरण नीचे दिखाया गया है।
var text = 'one, two, three, one, five, one';
var new_text = text.replace('one', 'ten');
console.log(new_text) //ten, two, three, one, five, one
ध्यान दें कि यदि पहला तर्क स्ट्रिंग है, तो केवल प्रतिस्थापन की पहली घटना को ऊपर के उदाहरण में बदल दिया गया है। प्रतिस्थापन की सभी घटनाओं को बदलने के लिए आपको एक के साथ एक नियमित अभिव्यक्ति प्रदान करने की आवश्यकता हैg
(वैश्विक) ध्वज के । यदि आप वैश्विक ध्वज प्रदान नहीं करते हैं, तो विकल्प की केवल पहली घटना को प्रतिस्थापित किया जाएगा भले ही आप पहले तर्क के रूप में नियमित अभिव्यक्ति प्रदान करें। तो आइए one
उपरोक्त उदाहरण में सभी घटनाओं को प्रतिस्थापित करते हैं।
var text = 'one, two, three, one, five, one';
var new_text = text.replace(/one/g, 'ten');
console.log(new_text) //ten, two, three, ten, five, ten
ध्यान दें कि आप उद्धरणों में नियमित अभिव्यक्ति पैटर्न को नहीं लपेटते हैं जो इसे एक स्ट्रिंग नहीं एक regExp ऑब्जेक्ट बना देगा। एक मामले को असंवेदनशील प्रतिस्थापन करने के लिए आपको अतिरिक्त ध्वज प्रदान करने की आवश्यकता हैi
जो पैटर्न केस-असंवेदनशील बनाता है। उस मामले में उपरोक्त नियमित अभिव्यक्ति होगी /one/gi
। ध्यान देंi
झंडा यहां जोड़ा गया है।
यदि दूसरे तर्क में एक फ़ंक्शन है और यदि कोई मैच है तो फ़ंक्शन तीन तर्कों के साथ पारित किया जाता है। फ़ंक्शन को मिलने वाले तर्क मैच, मैच की स्थिति और मूल पाठ हैं। आपको उस मैच को वापस करने की आवश्यकता है जिसे उस मैच से बदल दिया जाना चाहिए। उदाहरण के लिए,
var text = 'one, two, three, one, five, one';
var new_text = text.replace(/one/g, function(match, pos, text){
return 'ten';
});
console.log(new_text) //ten, two, three, ten, five, ten
आप दूसरे तर्क के रूप में एक फ़ंक्शन का उपयोग करके प्रतिस्थापन पाठ पर अधिक नियंत्रण रख सकते हैं।
str_replace
भी एक ही लंबाई के दो सरणियों को स्वीकार करता है, जहां पहले सरणी में प्रत्येक स्ट्रिंग को उसी सूचकांक पर दूसरे सरणी में स्ट्रिंग के साथ बदल दिया जाता है। कृपया मुझे अभी तक मिले एकमात्र सही फ़ंक्शन के लिए stackoverflow.com/a/5069776/296430 देखें , जो कि जावास्क्रिप्ट में इस सटीक व्यवहार की नकल करता है।