ES5中类似ES6的模板-当属性名称包含。时不起作用

时间:2018-11-15 12:59:10

标签: javascript regex ecmascript-5

我发现了此功能here,该功能允许在ES5中进行类似ES6的模板制作。

String.prototype.eval = function(data) {
return this.replace(/\${(.*?)}/g, function(_, code) {
    var scoped = code.replace(/(["'\.\w\$]+)/g, function(match) {
      return /["']/.test(match[0]) ? match : 'scope.' + match;
    });
    try {
        return new Function('scope', 'return ' + scoped)(data);
    } catch (e) { return ''; }
});

}

除了属性名称中包含。(点)的情况之外,它的效果都很好。 我的regex技能还不算足够,如何使它能够处理包含。的属性名称(点)?

即“ MY_ATTRIBUTE”有效,而“ MY_ATTRIBUTE.A”无效。

0 个答案:

没有答案