2010-06-22 6 views
7

Je veux quelque chose comme un compteur pour chaque saut de ligne dans une zone de texte. Ceci est utilisé lors du téléchargement d'un grand nombre de webbanners, j'ai donc besoin d'un simple compteur pour le nombre d'utilisateurs ajoutés. À l'heure actuelle, le compteur ne fonctionne que lorsqu'un utilisateur appuie sur un lien avec une bannière spéciale.Recherche de sauts de ligne dans la zone de texte avec jQuery

Ceci est mon code tel qu'il est en ce moment:

var i = 0; 

$('.size').click(function(){ 
$('#total-number').text(i++); 
return false; 
}); 

Répondre

0

Rechercher dans le textarea pour "\ n". Pour être certain, effectuez une recherche d'expression régulière pour le modèle "\\ n" et comptez le tableau de correspondances, qui sera le nombre de lignes.

4

Utiliser la fonction String split ...

var text = $('#total-number').text(); 
var eachLine = text.split('\n'); 

alert('Lines found: ' + eachLine.length); 

for(var i = 0, l = eachLine.length; i < l; i++) { 
    alert('Line ' + (i+1) + ': ' + eachLine[i]); 
} 
2

Utilisation d'expressions régulières, votre problème peut être résolu comme celui-ci (la recherche de la zone de texte pour le nouveau caractère de ligne "\ n")):

//assuming $('#total-number') is your textarea element 
var text = $('#total-number').val(); 
// look for any "\n" occurences 
var matches = text.match(/\n/g); 
// count them, if there are any 
var breaks = matches ? matches.length : 0; 
La variable

breaks contient désormais le nombre de sauts de ligne dans le texte.

0

Cela fonctionne lorsque vous appuyez sur Entrée, mais existe-t-il un moyen de compter les sauts de ligne créés par textarea lorsque vous copiez-collez des données? Je veux dire, si vous définissez une largeur pour une zone de texte et ensuite collez du texte, cela créera des sauts de ligne ...

0

Voulez-vous dire une chaîne à une seule ligne qui s'enroule. Un saut de ligne, si je ne me trompe pas, est créé quand on appuie sur Entrée ou sur Maj + Entrée.

Questions connexes