JS .format()

by Florian Bar

JavaScript

String.prototype.format = function (paramater) {
    var text = this;

    if (paramater && typeof (paramater) == "object") {
        var placeholders = paramater;
        for (var propertyName in placeholders) {
            var regex = new RegExp('{' + propertyName + '}', 'gm');
            text = text.replace(regex, placeholders[propertyName]);
        }
    } 
    else {
        var itemIndex = arguments.length;
        if (text) {
            while (itemIndex--) {
                text = text.replace(new RegExp('\\{' + itemIndex + '\\}', 'gm'), 						arguments[itemIndex]);
            }
        }
    }
    
    return text;
};

var msg = "Hello {0} {1}".format("Florian", "Bar");

var me = { firstname: "Florian", lastname: "Bar" }
var msg2 = "Hello {firstname} {lastname}".format(me);

$('body').prepend(msg);
$('body').prepend(msg2);