ES6-подобные шаблоны в ES5 - не работают, когда имена атрибутов имеют. - PullRequest
0 голосов
/ 15 ноября 2018

Я нашел эту функцию здесь , которая позволяет использовать ES6-подобные шаблоны в ES5.

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

}

Она работает очень хорошо, за исключением случаев, когда имена атрибутоввключить. (точки) в них.Мои навыки регулярных выражений не на пустом месте, как я могу позволить ему работать с именами атрибутов, которые включают в себя (точки)?

т.е. "MY_ATTRIBUTE" работает, а "MY_ATTRIBUTE.A" - нет.

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