diff --git a/lib/string.js b/lib/string.js index d2a7518..7fdc79d 100644 --- a/lib/string.js +++ b/lib/string.js @@ -386,16 +386,9 @@ string.js - Copyright (C) 2012-2014, JP Richardson var opening = opening || Export.TMPL_OPEN var closing = closing || Export.TMPL_CLOSE - var open = opening.replace(/[-[\]()*\s]/g, "\\$&").replace(/\$/g, '\\$') - var close = closing.replace(/[-[\]()*\s]/g, "\\$&").replace(/\$/g, '\\$') - var r = new RegExp(open + '(.+?)' + close, 'g') - //, r = /\{\{(.+?)\}\}/g - var matches = s.match(r) || []; - - matches.forEach(function(match) { - var key = match.substring(opening.length, match.length - closing.length);//chop {{ and }} - if (typeof values[key] != 'undefined') - s = s.replace(match, values[key]); + var re = new RegExp(opening.replace(/([^a-z])/gi,'\\$1')+'(.*?)'+closing.replace(/([^a-z])/gi,'\\$1'), 'g'); + s = s.replace(re, function(all,key) { + return values[key]!==undefined ? values[key] : all }); return new this.constructor(s); },