Bonjour,
J'aurais besoins d'une petite fonctions pour faire un retour � la ligne automatique dans ma TextArea.
Plus pr�cis�ment, je voudrais que si une des ligne a une largeur sup�rieure � 16 caract�res, que �a d�tecte o� se situe le dernier espace (pour ne pas couper les mots en deux) et que �a mette un retour � la ligne � la place de cet espace. Le tout si possible sans changer la position du curseur dans la TextArea, ce qui n'est pas le cas du code que j'avais essay� :
En gros, il split le contenu de mon input (ici ma textarea) et met chaque ligne dans un array.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 function ralAuto(input){ var lines = input.value.split(String.fromCharCode(13)); for(var i = 0;i < lines.length;i++){ var vi = reverse(lines[i]); var n = vi.indexOf(" "); if (vi.length > 16){ vi = vi.replaceAt(n,String.fromCharCode(13)); lines[i] = reverse(vi); } if(i === 0){ input.value = lines[0]; }else{ input.value += lines[i]; } } } //Reverse function : function reverse(s) { var o = ''; for (var i = s.length - 1; i >= 0; i--) o += s[i]; return o; } //replaceAt function : String.prototype.replaceAt=function(index, character) { return this.substr(0, index) + character + this.substr(index+character.length); };
Ensuite, pour chaque ligne, il la met � l'envers et cherche la position du premier espace (le dernier quand on est � l'endroit).
Si la longueur est sup�rieure � 16 caract�res, on remplace le caract�re la position de l'espace par un retour � la ligne.
Puis on remet les lignes dans la textarea.
Ce code marche pour la premi�re ligne de ma textarea, puis met un retour � la ligne apr�s chaque caract�re (il faut savoir que cette fonction est ex�cut�e par l'event onInput de ma textarea, donc la fonction ne doit si possible pas bouger le curseur pour ne pas g�ner l'�criture).
Merci d'avance,
Paul





R�pondre avec citation




Partager