2011-02-07 12 views
6

को प्रतिस्थापित नहीं है, लेकिन मुझे यकीन नहीं है कि क्यों मैं एक साधारण सरल प्लेसहोल्डर को प्रतिस्थापित नहीं कर सकता।जावास्क्रिप्ट - स्ट्रिंग

मेरे दृष्टिकोण

var content = 'This is my multi line content with a few {PLACEHOLDER} and so on'; 
content.replace(/{PLACEHOLDER}/, 'something'); 
console.log(content); // This is multi line content with a few {PLACEHOLDER} and so on 

किसी भी विचार यह क्यों काम नहीं करता है?

अग्रिम धन्यवाद!

var str="Hello, Venus"; 
document.write(str.replace("venus", "world")); 
+0

जोड़े '' {} प्लेसहोल्डर के आसपास :-) –

+0

आप कहीं की जगह का परिणाम स्टोर करने के लिए की जरूरत है: इसे आज़माएं: 'var content = 'यह {placeholder}' है; सामग्री = content.replace (/ {प्लेसहोल्डर} /, 'कुछ'); चेतावनी (सामग्री); ' काम करना चाहिए – Shrinath

उत्तर

10

जावास्क्रिप्ट की स्ट्रिंग की जगह मूल स्ट्रिंग संशोधित नहीं करता है:

+0

धन्यवाद कि मुझे वही चाहिए जो मुझे चाहिए! – n00b

2

इस तरह की कोशिश करो। इसके अलावा, यदि आप सभी को प्रतिस्थापित करना चाहते हैं, तो आपका कोड नमूना केवल स्ट्रिंग के एक उदाहरण को प्रतिस्थापित करता है, आपको regex में 'g' जोड़ना होगा।

var content = 'This is my multi line content with a few {PLACEHOLDER} and so on'; 
var content2 = content.replace(/{PLACEHOLDER}/g, 'something'); 
console.log(content2); // This is multi line content with a few {PLACEHOLDER} and so on 
16

यहाँ कुछ थोड़ा अधिक सामान्य है:

var formatString = (function() 
{ 
    var replacer = function(context) 
    { 
     return function(s, name) 
     { 
      return context[name]; 
     }; 
    }; 

    return function(input, context) 
    { 
     return input.replace(/\{(\w+)\}/g, replacer(context)); 
    }; 
})(); 

उपयोग:

>>> formatString("Hello {name}, {greeting}", {name: "Steve", greeting: "how's it going?"}); 
"Hello Steve, how's it going?" 
+0

अच्छा एक - धन्यवाद! – n00b

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