Skip to content

Instantly share code, notes, and snippets.

@luwes
Last active December 23, 2015 17:59
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save luwes/6672552 to your computer and use it in GitHub Desktop.
Populate - Tiny Javascript Template Function, http://luwes.co/populate-tiny-javascript-template-function/
String.prototype.populate = function(obj, funcs) {
return this.replace(/\{\{\s*([^|\s}]+)\|?([^\s}]*)\s*\}\}/g, function(match, key, mods) {
var str = obj[key];
if (typeof str !== "undefined") {
if (funcs && mods) {
var arr = mods.split('|');
for (var i = 0; i < arr.length; i++) {
var mod = arr[i].split(':')[0];
var par = arr[i].split(':')[1];
var args = par ? par.split(',') : [];
args.unshift(str);
if (typeof funcs[mod] === "function") {
str = funcs[mod].apply(str, args);
}
}
}
return str;
} else {
return match;
}
});
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment