Hoy ando liado con un buscador que recupera vía Ajax un JSON con los resultados y los muestra en un desplegable. Dos de las necesidades han sido tener una funciona que convierta una cadena de texto en formato url (quitar símbolos raros, espacios, etc) y la otra ha sido recortar cadenas de texto a una longitud determinada pero sin cortar palabras, así que en vez de usar funciones me ha dado por prototipar dos funciones para los strings de JavaScript.
String.prototype.url = String.prototype.url || function() { var from = "ÃÀÁÄÂÈÉËÊÌÍÏÎÒÓÖÔÙÚÜÛãàáäâèéëêìíïîòóöôùúüûÑñÇç ", to = "AAAAAEEEEIIIIOOOOUUUUaaaaaeeeeiiiioooouuuunncc-", mapping = {}; for(var i = 0, j = from.length; i < j; i++ ) mapping[ from.charAt( i ) ] = to.charAt( i ); var result = []; for(var i = 0, j = this.length; i < j; i++ ){ if( mapping.hasOwnProperty(this[i])) result.push(mapping[this[i]]); else result.push(this[i]); } return result.join('').replace(/[^A-Za-z0-9-]/g,''); } String.prototype.cut = String.prototype.cut || function(maxlength) { var result = []; for(var i = 0, j = this.length; i < j; i++ ) result.push(this[i]); if(maxlength >= this.length) return result.join(''); else if(result[maxlength] == ' ') return result.slice(0, maxlength).join(''); else{ for(var i = maxlength, j = 0; i > j; i-- ){ if(result[i] == ' ') return result.slice(0, i).join(''); } } } // y la forma de usarlas serían: alert('Esta es la cadena a formatear áéíóú%&/()ñÇ'.url()); alert('Esta es la cadena a cortar'.cut(11));
0 Comentarios.