@singuerinc


2014.01.17 by Nahuel Scotti | 1 min read

Abbreviate String


"Abbreviate" nos permite abreviar una cadena de texto usando puntos suspensivos.
Es una conversión de la función StringUtils.abbreviate de as3commons pero para Javascript.

function abbreviate(str, offset, maxWidth){

  if(str == null) return str;
  if(maxWidth < 4) throw new Error('Minimum width is 4');
  if(str.length <= maxWidth) return str;
  if(offset > str.length) offset = str.length;
  if((str.length - offset) < (maxWidth - 3)){
    offset = str.length - (maxWidth -3);
  }
  if (offset <= 4) return str.substring(0, maxWidth - 3) + "...";
  if (maxWidth < 7)
    throw new Error("Minimum width with offset is 7");

  if ((offset + (maxWidth - 3)) < str.length){
    var a = abbreviate(str.substring(offset), 0, maxWidth - 3);
    return "..." + a;
  }

  return "..." + str.substring(str.length - (maxWidth - 3));
}

abbreviate("abcdefghijklmno", 0, 10) // "abcdefg..."
abbreviate("abcdefghijklmno", 8, 10) // "...ijklmno"
Demo
  • #javascript
  • #string