1 if (!String.prototype.trim) { 2 /** 3 * Trims a string (removing whitespace from the beginning and the end) 4 * @method trim 5 */ 6 String.prototype.trim = function () { 7 // this trim is not fully ES3 or ES5 compliant, but it should cover most cases for now 8 return this.replace(/^[\s\xA0]+/, '').replace(/[\s\xA0]+$/, ''); 9 }; 10 } 11 12 /** 13 * Camelizes a string 14 * @memberOf fabric.util.string 15 * @method camelize 16 * @param {String} string String to camelize 17 * @return {String} Camelized version of a string 18 */ 19 function camelize(string) { 20 return string.replace(/-+(.)?/g, function(match, character) { 21 return character ? character.toUpperCase() : ''; 22 }); 23 } 24 25 /** 26 * Capitalizes a string 27 * @memberOf fabric.util.string 28 * @method capitalize 29 * @param {String} string String to capitalize 30 * @return {String} Capitalized version of a string 31 */ 32 function capitalize(string) { 33 return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase(); 34 } 35 36 /** @namespace */ 37 fabric.util.string = { 38 camelize: camelize, 39 capitalize: capitalize 40 };