Как заменить тег круглой скобки в строке JavaScript - PullRequest
2 голосов
/ 19 марта 2010

У меня проблемы с изменением тега круглой скобки в Javascript. Я пытаюсь сделать это:

var K = 1;
var Text = "This a value for letter K: {ValueOfLetterK}";
Text = Text.replace("{ValueOfLetterK}", K);

и после этого я получаю:

Text = "This a value for letter K: {ValueOfLetterK}"

Что можно сделать, чтобы заставить эту работу? Когда я снимаю круглые скобки, все работает нормально.

Ответы [ 3 ]

1 голос
/ 19 марта 2010

Чтобы заменить более одного вхождения, вам нужно регулярное выражение с переключателем 'g' (= global)

 Text = Text.replace(/{ValueOfLetterK}/g, K);

Если вы ищете более общий способ замены заполнителей в строке,вот как это можно сделать:

var myVars = { A: 1, B: 2 };
var Text = "This a value for a {valueOfA} and b {valueOfB} and a again {valueOfA}";
Text = Text.replace(/{valueOf(\w+)}/g, function() {
   var varName = arguments[1];
   return myVars[varName];
});

alert(Text)
0 голосов
/ 19 марта 2010

Я не вижу проблем с вашим кодом. Я попробовал это в Firefox и IE, и это сработало для меня. Дайте мне знать, что браузер ведь вы используете.

<html>
<head> 
<script>
var K = 1; 
var Text = "This a value for letter K: {ValueOfLetterK}"; 
Text = Text.replace("{ValueOfLetterK}", K); 
alert(Text)
</script> 

</head><body>
    </body> 

    </html> 
0 голосов
/ 19 марта 2010

Это работает для меня в Chrome и Firefox ... Попробуйте убрать фигурные скобки и посмотрите, что произойдет:

Text = Text.replace("\{ValueOfLetterK\}", K);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...