dist/string.js

File

			(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);