Sprintf of Javascript
/**** Javascript sprintf* http://www.webtoolkit.info/** %% – Returns a percent sign* %b – Binary number* %c – The character according to the ASCII value* %d – Signed decimal number* %f – Floating-point number* %o – Octal number* %s – String* %x – Hexadecimal number (lowercase letters)* %X – Hexadecimal number (uppercase letters)***/sprintfWrapper = {init : function () {if (typeof arguments == "undefined") { return null; }if (arguments.length < 1) { return null; }if (typeof arguments[0] != "string") { return null; }if (typeof RegExp == "undefined") { return null; }var string = arguments[0];var exp = new RegExp(/(%([%]|(\-)?(\+|\x20)?(0)?(\d+)?(\.(\d)?)?([bcdfosxX])))/g);var matches = new Array();var strings = new Array();var convCount = 0;var stringPosStart = 0;var stringPosEnd = 0;var matchPosEnd = 0;var newString = '';var match = null;while (match = exp.exec(string)) {if (match[9]) { convCount += 1; }stringPosStart = matchPosEnd;stringPosEnd = exp.lastIndex - match[0].length;strings[strings.length] = string.substring(stringPosStart, stringPosEnd);matchPosEnd = exp.lastIndex;matches[matches.length] = {match: match[0],left: match[3] ? true : false,sign: match[4] || '',pad: match[5] || ' ',min: match[6] || 0,precision: match[8],code: match[9] || '%',negative: parseInt(arguments[convCount]) < 0 ? true : false,argument: String(arguments[convCount])};}strings[strings.length] = string.substring(matchPosEnd);if (matches.length == 0) { return string; }if ((arguments.length - 1) < convCount) { return null; }var code = null;var match = null;var i = null;for (i=0; i