[Javascript] Fonction de tronquage
Résolu
Arkha
-
nEm3sis Messages postés 722 Statut Membre -
nEm3sis Messages postés 722 Statut Membre -
Bonjour,
j'ai créé une fonction de tronquage par des "..." pour que le texte affiché ne soit pas trop volumineux
le script:
Jusque là tout vas bien, mais le problème est que j'aimerai que cette fonction, prenne en compte les balises HTML de cette façon:
exemple:
"123<strong>4567</strong>89" deviendra "1234567..."
au lieu de :
"123<str..."
Avez vous une idée pour m'éclairer?
Merci d'avance.
j'ai créé une fonction de tronquage par des "..." pour que le texte affiché ne soit pas trop volumineux
le script:
if (val.length > 7) {
val = val.substr(0,7)+"...";
}
document.getElementById('id').innerHTML = val;
//si la valeur de val est "aaaaaaaaaaaaaaaaaaa" elle sera remplacée par "aaaaaaa..."
Jusque là tout vas bien, mais le problème est que j'aimerai que cette fonction, prenne en compte les balises HTML de cette façon:
exemple:
"123<strong>4567</strong>89" deviendra "1234567..."
au lieu de :
"123<str..."
Avez vous une idée pour m'éclairer?
Merci d'avance.
Configuration: Windows XP Internet Explorer 7.0
10 réponses
-
ça va c'est pas encore trop compliqué
s'il te manque quelque chose n'hésite pas
function t(s,n){for(var i=0;n&&i<s.length;n--,i++)while(s.charAt(i)=='<')i=s.indexOf('>',i)+1;return i<s.length?s.slice(0,i)+'...':s}
et tu l'appelle comme ça, la fonction, par exemple si tu ne veux que 6 caractères :t('123<strong>45</strong>6789', 6)
edit :
j'y pense ça prend pas en compte les balise html mais tout simplement tout ce qui commence par < et termine par >
ça pose problème ? -
bonjour
j'ai une petite idée ^^
tu fais une fonction qui compte les caractères entre <> tu ajoute 2 pour <> et tu augment la fonction qui tronque :)
enfin c'est juste une idée comme ca car si entre <> il y a pas une balise html ca sera ecrit
Adns
ps: pas super de pouvoir écrire du html quand même.... -
Merci adns
J'ai déjà essayé dans cette voie là, mais il faut vraiment que la balise soit prise en compte dans l'affichage final. Je ne sais donc pas comment réafficher les balises au bon endroit après avoir tronqué le texte "brut" :/
Pour la recopie de balise, t'en fais pas, j'ai en sorte que se soit sécurisé :) -
oki ...
bah a pars parser pour recup les données affichéés je vois pas trop :S
Adns -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
ou peut être recupe le texte dans des variable une variable par tranche de texte ex
123<b>456</b>789
v1 = 123
v2= <b>
v3= 456
v4 = </b>
v5=789
vérification de quelle variable est du texte ou une balise
tu concatène les variables text
tu tronque
et apres tu fais un replace
tu concatene premiere varivable balise avec les 2 suivante et tu remplace ;)
je sais pas si réellement faisable mais ca peux marcher....
Adns -
Bah je pense que ca va lui poser probleme
si le mec veux foutre du html mais qui se trompe le contenu des balises s'affichera
Adns -
Merci beaucoup adns et nEm3sis,
nEm3sis c'est en effet ce que je cherchais à faire
après quelques petites modifications se sera top! -
nEm3sis,
Je suis un peu désolé de te demander ça, mais connais-tu l'équivalent de la fonction que tu viens de m'écrire en php?
Grand merci... -
-