jquery заменить текст в скобках - PullRequest
0 голосов
/ 26 июня 2018

У меня есть массив как

data['name']='Alex';
data['age']='21';

и строка типа

var text='My name is {name} and my age is {age}';

Как заменить данные в скобках на соответствующее значение массива?

Ответы [ 4 ]

0 голосов
/ 26 июня 2018
var data = [];

data['name']='Alex';
data['age']='21';

var text='My name is {name} and my age is {age}';

var result = formatString(text, data); // desired output
console.log(result);

/* Replace the token values */
function formatString(text, data)
{
    var keyNames = Object.keys(data);
    for(var i = 0; i < keyNames.length ;i++)
    {
        text = text.replace("{"+ keyNames[i] +"}", data[ keyNames[i] ] );
    }
    return text;
}
0 голосов
/ 26 июня 2018

Вы можете просто перебрать свой массив и получить имя и возраст.

var data = [{'name':'Alex','age':'18'}];
var text = '';
for(var i=0;i<data.length;i++){
   text = "My name is "+ data[i].name+" and my age is "+ data[i].age+" .";
}

console.log(text);
0 голосов
/ 26 июня 2018

Вы можете сделать это в JavaScript, используя строку шаблона

// Template literals are enclosed by the back-tick (` `)
data['name']='Alex';
data['age']='21';
var text = `My name is ${data.name} and my age is ${data.age}`;

проверить детали ЗДЕСЬ

0 голосов
/ 26 июня 2018

Вы можете передать функцию для замены

var text = 'My name is {name} and my age is {age}';
var data = {
  name: 'foo',
  age: 18
}

let res = text.replace(/\{(\w+)\}/g, (_, g) => data[g]);

console.log(res);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...