Javascript: элемент ссылочного массива с использованием Regex Backreference - PullRequest
1 голос
/ 18 апреля 2011

По сути, я пытаюсь заменить части строки, используя элементы из ассоциативного массива.Однако мне нужно получить элементы на основе обратных ссылок, сгенерированных из групп захвата, в выражении replace ().

Используя первую группу захвата, я создал этот код, который не работает:

content = content.replace(/%(\w+)%/g,this.vars["$1"]);

(регулярное выражение работает нормально ... я просто не могу заставить его получить элемент массива.)

Как бы я реализовал что-то подобное?

1 Ответ

2 голосов
/ 18 апреля 2011

String.replace может принять функцию в качестве второго аргумента .

var that = this,
    re = /%(\w+)%/g;

content = content.replace(re, function (str, p1)
{
    return that.vars[p1];
});
...