2012-05-28 80 views
5

यह संभव एक तार के साथ एक विशेष स्थिति में एक चरित्र को बदलने के लिएकी जगह चरित्र, jQuery

हम कहते हैं कि वहाँ कहना एक स्ट्रिंग करते है स्ट्रिंग "wom" के साथ चरित्र 7 को प्रतिस्थापित करना चाहते हैं (चाहे मूल चरित्र क्या था)।

अंतिम परिणाम होना चाहिए: "I am a woman"

+1

भी देखें यहाँ http://stackoverflow.com/questions/1431094/how-do-i-replace-a-character-at-a-particular-index-in-javascript (आप समारोह का उपयोग कर सकते चयनित उत्तर का, तारों के साथ-साथ काम करता है)। – Ixx

+0

@lxx no, यह फ़ंक्शन अच्छा नहीं है क्योंकि यह स्रोत स्ट्रिंग में कई वर्णों को प्रतिस्थापित करता है जैसा कि आपूर्ति की गई थी - ओपी यहां केवल _one_ वर्ण बदलना चाहता है। – Alnitak

+0

अल्निटक सही है। –

उत्तर

17

स्ट्रिंग्स अपरिवर्तनीय जावास्क्रिप्ट में कर रहे हैं - आप "स्थान पर" उन्हें संशोधित नहीं कर सकते।

आप मूल स्ट्रिंग अप में कटौती, और एक नया टुकड़े के सभी से बाहर कर दिया स्ट्रिंग वापस जाने के लिए की आवश्यकता होगी:

// replace the 'n'th character of 's' with 't' 
function replaceAt(s, n, t) { 
    return s.substring(0, n) + t + s.substring(n + 1); 
} 

एनबी: मैं क्योंकि कुछ ब्राउज़रों प्रदर्शन पर String.prototype को यह नहीं जोड़ा था, यदि आप अंतर्निहित प्रकारों के prototype पर फ़ंक्शंस जोड़ते हैं तो बहुत बुरा होता है। https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/replace

पी.एस.:

+0

वे वास्तव में अपरिवर्तनीय हैं, लेकिन इसका मतलब यह नहीं है कि आपको इंडेक्स गणित करना है। पहले से ही एक प्रतिस्थापन विधि है। मेरा जवाब देखें – Slavo

+0

@Slavo '.replace' स्थिति आधारित सूचकांक का समर्थन नहीं करता है, जब तक कि आप एक अनिवार्य जटिल regexp का निर्माण नहीं करते। – Alnitak

+0

मैं सहमत हूं। प्रश्न में दिए गए उदाहरणों को जटिल RegEx की आवश्यकता नहीं है। मुझे लगता है कि यह सब असली उपयोग मामले पर निर्भर करता है। – Slavo

-1

Javascript में एक string.replace() विधि नहीं है
वैसे, आपके पहले उदाहरण में, "एम" की अनुक्रमणिका आप 7 के बारे में बात कर रहे हैं। जावास्क्रिप्ट 0-आधारित इंडेक्स का उपयोग करता है।

+2

यह ओपी की समस्या को पूरा नहीं करता है। वे इंडेक्स और string.replace() द्वारा नियमित अभिव्यक्ति के साथ प्रतिस्थापित करना चाहते हैं। यह पूरी तरह से अलग है। – jlafay

1

या आप सरणी कार्यों का उपयोग करके इसे इस तरह से कर सकते हैं।

var a='I am a man'.split(''); 
a.splice.apply(a,[7,1].concat('wom'.split(''))); 
console.log(a.join(''));//<-- I am a woman 

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^