Reputation: 1278
I am working with REST API that returns the following string:
Lorem ipsum {@someAttribute Attribute1} ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod {@isTrue false} Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
The basic idea is to take strings like:
{@someAttribute Attribute1}
or:
{@isTrue false}
and get rid of the thinks like {} and @someAttribute, @isTrue so that the finall string would look like this:
Lorem ipsum Attribute1 ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod false Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
I know, that there is replace() method in Javascript, but my knowledge is very limited in regular expressions. Any help ?
Upvotes: 1
Views: 85
Reputation: 11342
Try this code:
var str = 'Lorem ipsum {@someAttribute Attribute1} ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod {@isTrue false} Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.';
var output = str.replace(/\{[^}]*\}/g, function (m) {
return m.slice(0, -1).replace(/^\{@\w*\s/g, '');
});
Upvotes: 1
Reputation: 785128
If { and }
are balanced then this should work:
var repl = s.replace(/\{@\S+\s+([^}]+)\}/g, '$1');
Lorem ipsum Attribute1 ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod false Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Upvotes: 3