2016-07-19 5 views
2

작동하지 않는 대체, 나는 이런 식으로 그렇게하려고 : 여기 정규식 개체를 발견하고 내가 문자열 템플릿에 값을 대체하기 위해 노력하고

for (var i in replacements) { 
    var regexp = new RegExp('\$\{' + i + '\}', 'g'); 
    template = template.replace(regexp, replacements[i]); 
} 

내가 값을 대체하기 위해 노력하고 템플릿입니다 : 나는 console.log(i, replacements[i])을 수행 할 때

<?php 
class ${className} { 

} 

, 나는 classNameTest를 얻을 수 있지만, 최종 템플릿을 대체하지 않습니다. 전혀 수정하지 않습니다. 내가 잘못 했니? 한 번 문자열과 한 번 정규식에 대한

<?php 
class Test { 

} 
+1

가' '\\ $ \\ {'+ 내가 + '\\}', ' – melpomene

+0

당신이 대답을 사용할 수 g'' http://stackoverflow.com/a/ 500144/1262960 – user3

답변

2

두 번 탈출 특수 문자 :

내가 찾고 있어요 출력이됩니다.

또한 중괄호를 벗어날 필요가 없습니다.

var replacements = { 
 
    className: 'Test' 
 
} 
 

 
var template = '<?php class ${className} { }'; 
 

 
for (var i in replacements) { 
 
    var regexp = new RegExp('\\${' + i + '}', 'g'); 
 
    template = template.replace(regexp, replacements[i]); 
 
} 
 

 
console.log(template);

관련 문제