101 votes

Je veux tronquer un texte ou une ligne avec des points de suspension en utilisant JavaScript

Je recherche un script simple qui peut tronquer une chaîne avec des points de suspension (...)

Je veux tronquer quelque chose comme 'this is a very long string' en 'this is a ve...'

Je ne veux pas utiliser CSS ou PHP.

201voto

El Ronnoco Points 5941
function truncate(input) {
   if (input.length > 5) {
      return input.substring(0, 5) + '...';
   }
   return input;
};

ou en ES6

 const truncate = (input) => input.length > 5 ? `${input.substring(0, 5)}...` : input;

45voto

Jarrod Points 3526

KooiInc a une bonne réponse à cela. Pour résumer:

 String.prototype.trunc = 
      function(n){
          return this.substr(0,n-1)+(this.length>n?'…':'');
      };

Maintenant vous pouvez faire :

 var s = 'not very long';
s.trunc(25); //=> not very long
s.trunc(5); //=> not...

Et si vous le préférez en tant que fonction, selon le commentaire de @AlienLifeForm :

 function truncateWithEllipses(text, max) 
{
    return text.substr(0,max-1)+(text.length>max?'…':''); 
}

Tout le mérite revient à KooiInc pour cela.

8voto

davidivad Points 120

Pour éviter les points au milieu d'un mot ou après un signe de ponctuation.

 let parseText = function(text, limit){
  if (text.length > limit){
      for (let i = limit; i > 0; i--){
          if(text.charAt(i) === ' ' && (text.charAt(i-1) != ','||text.charAt(i-1) != '.'||text.charAt(i-1) != ';')) {
              return text.substring(0, i) + '...';
          }
      }
       return text.substring(0, limit) + '...';
  }
  else
      return text;
};
    
    
console.log(parseText("1234567 890",5))  // >> 12345...
console.log(parseText("1234567 890",8))  // >> 1234567...
console.log(parseText("1234567 890",15)) // >> 1234567 890

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