2012-11-20 13 views
6

Potrzebuję przeczytać plik i zamienić niektóre teksty w tym pliku na zawartość dynamiczną. Kiedy spróbowałem string.replace, nie działa on dla danych, które odczytałem z pliku .Ale dla działającego łańcucha. Korzystam z node.js i express.string.replace nie działa w serwerze ekspresowym 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); 
    } 
}); 

wyjściowa:

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

Odpowiedz

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

Przekazujesz ciąg znaków zamiast wyrażenia regularnego do pierwszego zamiennika i nie jest on zgodny, ponieważ przypadek jest inny. Nawet jeśli się zgadza, nie zmieniasz ponownie tej wartości na msg. To dziwne, ponieważ robisz wszystko poprawnie dla tmp.

1

replace() zwraca nowy ciąg z zastąpionych podciągi, tak że należy przypisać do zmiennej, aby do niego dostęp. Nie modyfikuje oryginalnego łańcucha.

Chciałbyś zapisać przekształcony ciąg z powrotem do pliku.

3

Należy przypisać zmienną dla .replace(), która zwraca ciąg znaków. W twoim przypadku, trzeba zrobić jak, msg = msg.replace("%name%", "myname");

Kod:

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

Dzięki wszystkim ... Mam it..I jestem nowy javascript .. – Damodaran

Powiązane problemy