/*================================================== * String Utility Functions and Constants *================================================== */ String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); }; String.prototype.startsWith = function(prefix) { return this.length >= prefix.length && this.substr(0, prefix.length) == prefix; }; String.prototype.endsWith = function(suffix) { return this.length >= suffix.length && this.substr(this.length - suffix.length) == suffix; }; String.substitute = function(s, objects) { var result = ""; var start = 0; while (start < s.length - 1) { var percent = s.indexOf("%", start); if (percent < 0 || percent == s.length - 1) { break; } else if (percent > start && s.charAt(percent - 1) == "\\") { result += s.substring(start, percent - 1) + "%"; start = percent + 1; } else { var n = parseInt(s.charAt(percent + 1)); if (isNaN(n) || n >= objects.length) { result += s.substring(start, percent + 2); } else { result += s.substring(start, percent) + objects[n].toString(); } start = percent + 2; } } if (start < s.length) { result += s.substring(start); } return result; };