2015-06-12 2 views
1

У меня есть строка с переменными, которые заменяются указанными значениями через replace с RegExp.Переменная переменная замена

Как реализовать его таким образом, чтобы избежать замены введенных значений другим значением, когда исходное значение содержит имя переменной?

Пример:

var s = format("$1, $2, $3", ["$2", "two", "three"]); 
// returns: "two, two, three", 
// needed: "$2, two, three" 

Как реализовать такую ​​функцию format, которая позволила бы нам избежать замены ранее введенных значений, которые происходят, чтобы иметь узнаваемый переменную в них?

ответ

2

string.replace(callback) это самый простой вариант:

function format(str, args) { 
 
    return str.replace(/\$(\d+)/g, function(_, idx) { 
 
    return args[idx - 1]; 
 
    }); 
 
} 
 

 
var s = format("$1, $2, $3", ["$2", "two", "three"]); 
 
document.write(s)

+0

Спасибо, это работает! –

Смежные вопросы