(function(global, undefined) { var kafe = global.kafe, $ = kafe.dependencies.jQuery; kafe.bonify({name:'string', version:'1.2.0', obj:(function(){ /** * ### Version 1.2.0 * Additionnal methods for string manipulation and generation. * * @module kafe * @class kafe.string */ var string = {}; /** * Removes accented charaters from a string. * * @method removeAccent * @param {String} string * @return {String} The unaccented string. * @example * kafe.string.removeAccent('Kafe signifie café en créole.'); * // returns "Kafe signifie cafe en creole." */ string.removeAccent = function() { return arguments[0] .replace(/[àáâãäå]/g, 'a') .replace(/[ÀÁÂÃÄÅ]/g, 'A') .replace(/æ/g, 'ae') .replace(/Æ/g, 'AE') .replace(/ç/g, 'c') .replace(/Ç/g, 'C') .replace(/[èéêë]/g, 'e') .replace(/[ÈÉÊË]/g, 'E') .replace(/[ìíîï]/g, 'i') .replace(/[ÌÍÎÏ]/g, 'I') .replace(/ñ/g, 'n') .replace(/Ñ/g, 'N') .replace(/[òóôõö]/g, 'o') .replace(/[ÒÓÔÕÖ]/g, 'O') .replace(/œ/g, 'oe') .replace(/Œ/g, 'OE') .replace(/[ùúûü]/g, 'u') .replace(/[ÙÚÛÜ]/g, 'U') .replace(/[ýÿ]/g, 'y') .replace(/[ÝŸ]/g, 'Y') ; }; /** * Transforms a JSON string into a javascript object. * * @method toObject * @param {String} string A JSON string. * @return {Object} A valid javascript object. * @example * kafe.string.toObject('{"UserId":"456","Items":["first", "second", "last"],"State":true,"TotalAmount":52,"Taxes":[]}'); * // returns Object {UserId: "456", Items: Array[3], State: true, TotalAmount: 52, Taxes: Array[0]} */ string.toObject = function(s) { var cast = function(o) { for (var i in o) { // object if (typeof(o[i]) == 'object') { o[i] = cast(o[i]); // date } else if (/^\d{4}\-\d{2}\-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/.test(o[i])) { o[i] = new Date(o[i]); } } return o; }; return cast(JSON.parse(s)); }; /** * Generates a .NET random GUID/UUID. (Version 4, random) * * @method generateGuid * @return {String} A random valid GUID/UUID. * @example * kafe.string.generateGuid(); * // returns "c573f4f3-982a-4046-818a-083757f98804" */ string.generateGuid = function() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8); return v.toString(16); }); }; return string; })()}); })(typeof window !== 'undefined' ? window : this);