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.