2012-11-20 9 views
6

파일을 읽고 해당 파일의 일부 텍스트를 동적 content.when로 바꾸어야합니다. 파일에서 읽은 데이터에 대해 string.replace가 작동하지 않았습니다. . 그러나 문자열에 대해서는 작동 중입니다. node.js를 사용하고 있습니다.node.js 익스프레스 서버에서 string.replace가 작동하지 않습니다.

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에 다시 할당하지 않습니다. tmp에 대해 모든 작업을 올바르게 수행하고 있기 때문에 이상합니다.

1

replace()이 교체 된 문자열과 새 문자열을 반환합니다. 원래 문자열을 변경하지 않습니다.

변환 된 문자열을 다시 파일에 쓰고 싶을 것입니다.

3

문자열을 반환하는 .replace()에 대한 변수를 지정해야합니다. 내가 it..I 자바 스크립트에 새로운 오전 가지고 ... 모든

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

감사합니다 .. : 귀하의 경우에, 당신은 msg = msg.replace("%name%", "myname");

코드처럼 할 필요가 – Damodaran

관련 문제