diff --git a/src/index.js b/src/index.js index 096281b..672c956 100644 --- a/src/index.js +++ b/src/index.js @@ -1,13 +1,9 @@ -const RGX = /{{(.*?)}}/g; +const RGX = /{{\s*(.*?)\s*}}/g; +const get = (obj, key) => obj && obj[key]; export default function (str, mix) { - return str.replace(RGX, (x, key, y) => { - x = 0; - y = mix; - key = key.trim().split('.'); - while (y && x < key.length) { - y = y[key[x++]]; - } - return y != null ? y : ''; + return str.replace(RGX, (x, key) => { + x = key.split('.').reduce(get, mix); + return x != null ? x : ''; }); }