Funciones cortar cadena y formatear url

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

Dejar un comentario?

0 Comentarios.

Deje un comentario


NOTA - Puede usar estosHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.