Как заменить RegEx на имя переменной, найденное RegEx? - PullRequest
0 голосов
/ 15 января 2019

Допустим, у меня есть переменная с именем testvar и строка, содержащая это testvar;
Я хочу, чтобы моя функция взяла всю строку и заменила RegEx найденным RegEx.
/k.*?j/ этот RegExp находит все подстановки, которые начинаются с k и заканчиваются j .

В моем примере он должен заменить ktestvarj значением этого значения,
и, наконец, я хочу, чтобы у меня были "некоторые строковые символы 123".

var t = 'some sting characters ktestvarj';
var testvar = 123;
var modify = function(str) {
    var teststr = str.replace(/k.*?j/, ' + /k.*?j/ + ');
    console.log(teststr); 
}

modify(t);

1 Ответ

0 голосов
/ 15 января 2019

Предположим, у нас есть словарь variables, в котором хранятся переменные для замены.Затем вы можете использовать замену на пользовательскую function-replacer .Я добавил захват группы /k(.*?)j/g - поэтому первая группа будет именем вашей переменной.А также добавлен глобальный флаг для замены каждого совпадения.

var t = 'some sting characters ktestvarj';

var variables = {
  'testvar': 123,
  'testvar1': 456
};

function replacer(match, p1, offset, string) {
  return variables[p1];
}

var modify = function (str) {
  var teststr = str.replace(/k(.*?)j/g, replacer);
  console.log(teststr); 
}

modify(t);
modify('some ktestvarj sting characters ktestvarj ktestvar1j');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...