jquery replace text between brackets

432 views Asked by At

I have an array like

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

and a string like

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

How to replace the data between brackets with corresponding array value ?

4

There are 4 answers

0
baao On BEST ANSWER

You could pass a function to replace

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);

0
Sudhir Ojha On

You can simply loop through your array and get the name and age.

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
jagad89 On

you can do this in JavaScript using template string

// 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}`;

check details HERE

0
MRizwan On
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;
}