Entradas con la etiqueta ‘frase’

JS – Acortar frases

Publicado por Iván Gajate el 16 de julio de 2013 en JavaScript | 1 comentario »

Y aquí el equivalente en JavaScript a mi acortador de frases en ActionScript 🙂
La gracia está en que no corta las palabras, siempre corta por un espacio en blanco.
Al final de la frase pone puntos suspensivos (…) salvo que se le pase otra cadena como tercer parámetro.
 

 

function shortenString(cadena, maxCharacters, append) {
	if (cadena.length <= maxCharacters) {
		return cadena;
	}
	if(append === '' || append === undefined){
		append = '...';   
	}
	maxCharacters -= append.length;
	// Complete word after blank space
	if (cadena.substr(maxCharacters, 1) == " ") {
		return cadena.substr(0, maxCharacters) + append;
	}
	// Incomplete word
	cadena = cadena.substr(0, maxCharacters);
	var lastCharacter = cadena.lastIndexOf(" ");
	cadena = cadena.substr(0, lastCharacter) + append;
	return cadena;
}

Devuelve esto:

var miTexto = "Vero eros et accumsan et iusto odio dignissim qui blandit praesent";
 
alert(shortenString(miTexto, 50));
// Vero eros et accumsan et iusto odio dignissim...

AS3 – Acortar frases

Publicado por Iván Gajate el 17 de mayo de 2010 en AS3, Flash, Tutoriales | 12 comentarios »

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.

Descargar StringUtils.as

Descargar todo el paquete es.yporqueno