Замените несколько совпаденийJavascript

Форум по Javascript
Ответить
Anonymous
 Замените несколько совпадений

Сообщение Anonymous »

Учитывая объект JSON, который содержит теги, идентифицированные {{, мне нужно найти все совпадения в полезной нагрузке и заменить их. Следующий код работает, но возвращает только 1 -е матч, и если я включаю флаги GIM , чтобы заменить все совпадения, код разрывается. Стоит отметить, что в приложении используется двигатель ECMA5 (SpidermonKey) < /p>
для демографии я использую переменные окна, как и в случае приложения, для которого я работаю, я также должен заменить класс рабочих потоков, так что работает аналогично. />

Код: Выделить всё

var Obj = {
hostname: "Test 1 {{window.location.hostname}}",
protocol: "Test 2 {{window.location.protocol}}"
}
var myObj   = JSON.stringify(Obj)
var regex   = /\{\{window\.location\.(.+?)\}\}/       //gmi flag breaks code
var match   = myObj.match(regex)[1];
var enrich  = Function('return '+"window.location."+match)();
var _Obj    = myObj.replace(regex,enrich)

console.log(JSON.parse(_Obj))



Подробнее здесь: https://stackoverflow.com/questions/796 ... le-matches
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»