2012-11-20 14 views
6

मुझे फ़ाइल को पढ़ने और गतिशील सामग्री के साथ उस फ़ाइल में कुछ ग्रंथों को प्रतिस्थापित करने की आवश्यकता है। जब मैंने string.replace की कोशिश की तो यह उस डेटा के लिए काम नहीं कर रहा है जिसे मैंने फ़ाइल से पढ़ा है लेकिन स्ट्रिंग के लिए यह काम कर रहा है। मैं node.js और एक्सप्रेस का उपयोग कर रहा हूँ।string.replace node.js एक्सप्रेस सर्वर में काम नहीं कर रहा है

fs.readFile('test.html', function read(err, data) { 
    if (err) { 
       console.log(err); 
    } 
    else { 
     var msg = data.toString(); 
     msg.replace("%name%", "myname"); 
     msg.replace(/%email%/gi, '[email protected]'); 

     temp = "Hello %NAME%, would you like some %DRINK%?"; 
     temp = temp.replace(/%NAME%/gi,"Myname"); 
     temp = temp.replace("%DRINK%","tea"); 
     console.log("temp: "+temp); 
     console.log("msg: "+msg); 
    } 
}); 

आउटपुट:

temp: Hello Myname, would you like some tea? 
msg: Hello %NAME%, would you like some %DRINK%? 

उत्तर

11
msg = msg.replace(/%name%/gi, "myname"); 

आप को बदलने के पहले करने के लिए एक regex के एक स्ट्रिंग गुजर रहे हैं के बजाय, और यह मेल नहीं खाता क्योंकि मामला अलग है। यहां तक ​​कि यदि यह मेल खाता है, तो आप इस संशोधित मान को msg पर पुन: असाइन नहीं कर रहे हैं। यह अजीब बात है, क्योंकि आप tmp के लिए सब ठीक से कर रहे हैं।

1

replace(), प्रतिस्थापित सबस्ट्रिंग के साथ एक नया स्ट्रिंग रिटर्न ताकि आप इसे तक पहुँचने के लिए एक चर है कि सौंपनी होगी। यह मूल स्ट्रिंग को म्यूटेट नहीं करता है।

आप रूपांतरित स्ट्रिंग को अपनी फ़ाइल में वापस लिखना चाहते हैं।

3

आपको .replace() के लिए चर आवंटित करने की आवश्यकता है जो स्ट्रिंग देता है। आपके मामले में, आप की तरह करने के लिए, msg = msg.replace("%name%", "myname");

कोड की जरूरत है:

fs.readFile('test.html', function read(err, data) { 
    if (err) { 
       console.log(err); 
    } 
    else { 
     var msg = data.toString(); 
     msg = msg.replace("%name%", "myname"); 
     msg = msg.replace(/%email%/gi, '[email protected]'); 

     temp = "Hello %NAME%, would you like some %DRINK%?"; 
     temp = temp.replace(/%NAME%/gi,"Myname"); 
     temp = temp.replace("%DRINK%","tea"); 
     console.log("temp: "+temp); 
     console.log("msg: "+msg); 
    } 
}); 
+0

सभी को धन्यवाद ... मुझे मिल गया it..I जावास्क्रिप्ट को नया हूँ .. – Damodaran