Una funcioncilla muy útil si queremos recortar la longitud de una frase a un número máximo de caracteres.
Acorta la frase sin romper las palabras, si una palabra se queda a medias, devuelve la cadena hasta el principio de esa palabra, y añade puntos suspensivos (…) al final.
El típico ejemplo es un destacado de una noticia en el que sólo queremos mostrar las primeras palabras.
public static function shortenString(string:String, maxCharacters:uint, append:String="..."):String {
if (string.length <= maxCharacters) {
return string;
}
maxCharacters -= append.length;
// Complete word after blank space
if (string.substr(maxCharacters, 1) == " ") {
return string.substr(0, maxCharacters) + append;
}
// Incomplete word
string = string.substr(0, maxCharacters);
var lastCharacter:Number = string.lastIndexOf(" ");
string = string.substr(0, lastCharacter) + append;
return string;
}
Se usaría así:
import es.yporqueno.utils.StringUtils;
var miTexto:String = "Vero eros et accumsan et iusto odio dignissim qui blandit praesent";
trace(shortenString(miTexto, 50));
// Vero eros et accumsan et iusto odio dignissim...
Este tipo de funciones las voy a ir recopilando en una clase StringUtils.