Regex for mustache-style double braces?

前端 未结 5 995
后悔当初
后悔当初 2020-12-24 06:51

I\'m using Mustache-style tags inside of AngularJS. What\'s the best regex to use to return an array of just the text inside the mustache braces?

Sample dat

5条回答
  •  心在旅途
    2020-12-24 07:06

    Mod of Douglas Crockford's String.prototype.supplant

    This will interpolate any {param} you have between handleBars ({}). I know this answer is somewhat extensive, but I assumed the question was probably regarding interpolation -- either way, I'd advise the reader to study the regex, regardless.

    clear();
    
    function interpolate(str) {
        return function interpolate(o) {
            return str.replace(/{([^{}]*)}/g, function (a, b) {
                var r = o[b];
                return typeof r === 'string' || typeof r === 'number' ? r : a;
            });
        }
    }
    
    var terped = interpolate('The {speed} {color} fox jumped over the lazy {mammal}')({
        speed: 'quick',
        color: 'brown',
        mammal: 'dog'
    });
    
    console.log(terped);
    

    Hope this helps

提交回复
热议问题