62 votes

Comment puis-je tronquer une chaîne dans jQuery?

J'ai de longs titres et je veux les tronquer, mais de manière à ce qu'aucun mot ne se casse, je veux dire que la coupure se produit entre des mots, pas un mot.

Comment puis-je le faire en utilisant jQuery?

124voto

NAVEED Points 16576

Essaye ça:

 var title = "This is your title";

var shortText = jQuery.trim(title).substring(0, 10)
    .split(" ").slice(0, -1).join(" ") + "...";
 

Et vous pouvez aussi utiliser un plugin:

En tant qu'extension de String

 String.prototype.trimToLength = function(m) {
  return (this.length > m) 
    ? jQuery.trim(this).substring(0, m).split(" ").slice(0, -1).join(" ") + "..."
    : this;
};
 

Utilisé comme

 "This is your title".trimToLength(10);
 

40voto

La solution ci-dessus ne fonctionnera pas si la chaîne d'origine ne contient pas d'espaces.

Essaye ça:

 var title = "This is your title";
var shortText = jQuery.trim(title).substring(0, 10)
                          .trim(this) + "...";
 

36voto

Keating Wang Points 887
  function truncateString(str, length) {
     return str.length > length ? str.substring(0, length - 3) + '...' : str
  }

2voto

micjamking Points 680

J'ai écrit un petit plugin jQuery qui fait exactement ceci: http://micjamking.github.io/succinct/

Il traite le cas de bord abordé ci-dessus (chaînes avec des longueurs indéfinies) et fournit également des options pour longueur maximale, texte d'omission (par défaut: points de suspension (...)) et ignorer les lignes se terminant par des caractères spéciaux.

1voto

Chris Cinelli Points 975

C'est ma solution: https://gist.github.com/ChrisCinelli/5688048

La fonction truncText(text, maxLength, ellipseText) tronque un paragraphe en caractères de longueur maximale. Ça ne casse pas les mots. ellipseText est facultatif (par défaut:…). Cela ne fonctionnera pas avec des caractères autres que des lettres AZ ou des chiffres. Il revient en arrière jusqu'à ce qu'il y ait un espace et ajoute l'ellipseText. C'est du javascript simple, jQuery est optonal.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X