Améliorer script de comptage de caractères

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Améliorer script de comptage de caractères

par Pierre_99 » 16 avr. 2009, 14:54

Merci Elie mais là tu me plonges dans des abîmes de perplexité... #-o
Je n'ai absolument pas ce niveau (le mien est même très proche du zéro) et me sens incapable de faire tout ça... :oops:

Je croyais naïvement qu'il suffisait de rajouter un ou deux éléments au script et que quelqu'un de compétent allait pouvoir m'écrire ça en 2 coups de cuiller à pot, mais si c'est trop long et difficile à faire j'en suis navré. :(

par Elie » 16 avr. 2009, 11:40

Je serais toi déjà je ferais ca en temps reel en lancant la fonction sur un onkeyup=""
Ensuite, je compterai le nombre total de caractères et je soustairai le nombre d'espace :)
Et surement pareil pour les retours à la ligne.

1- Te renseigner sur l'attribut onkeyup=""
2- Savoir compter le nombre de caractères avec la fonction strlen
3- Compter le nombre d'espace avec indexOf je crois :)
4- Savoir faire des soustractions en JS

Bonne semaine :)

Grattage de tête...

par Invité » 16 avr. 2009, 08:53

Merci beaucoup Ryle, mais j'ai oublié de préciser que mes connaissances dans ce domaine sont très faibles : je ne sais pas faire ce que tu me conseilles... :?

par Ryle » 15 avr. 2009, 23:14

Utilise la fonction replace() de javascript pour dégager de ta variable les retours à la ligne, les espaces et tout autre caractère que tu ne veux pas compter. Il te suffit ensuite de récupérer la taille de la chaine avec length et le tour est joué ;)

Améliorer script de comptage de caractères

par Pierre_99 » 15 avr. 2009, 22:38

Bonjour,

J'ai besoin que les visiteurs de mon futur site puissent, en tapant un texte (de longueur quelconque) ou en faisant un copié/collé, connaître en temps réel le nombre de caractères.

Il y a sur le net le script countcar développé par Olivier Hondermarck, mais il ne fonctionne pas très bien à mon goût, car il compte les fins de ligne et retours chariot.
Par exemple pour :

123
456

Il va compter 10 caractères au lieu de 6.

Le script compte également les espaces, j'avoue que j'aimerai bien aussi qu'il ne les compte pas mais là je demande peut-être beaucoup... :roll:

Merci d'avance pour votre aide.

Pierre

Script countcar :
<HTML> 
<HEAD> 
<TITLE>Tout JavaScript.com - Compteur de caractères</TITLE> 
<SCRIPT LANGUAGE="JavaScript"> 
//D'autres scripts sur http://www.toutjavascript.com 
//Si vous utilisez ce script, merci de m'avertir ! 
var max=50; // 50 caractères maximum 

function compter(f) { 
var txt=f.zone.value; 
var nb=txt.length; 
if (nb>max) { 
alert("Pas plus de "+max+" caractères dans ce champ"); 
f.zone.value=txt.substring(0,max); 
nb=max; 
} 
f.nbcar.value=nb; 
} 

function timer() { 
compter(document.forms["form1"]); 
setTimeout("timer()",100); 
} 

</SCRIPT> 
</HEAD> 

<BODY bgcolor="white" text="#FAFAFF" alink="#000066" link="#000066" vlink="#000066" onload="setTimeout('timer()',100)"> 
<FONT FACE="Arial" SIZE='-1' COLOR="navy"> 
<CENTER><B><BIG>Compte le nombre de caractères dans une zone de texte</B></BIG></CENTER> 
Compatible IE4+ et NS4+<BR> 
<FORM name="form1"> 
Votre texte :<TEXTAREA name="zone" rows=4 cols="40" onkeypress="compter(this.form)"></TEXTAREA><BR> 
Nombre de caractères : <INPUT type="text" name="nbcar" size=3> 
</FORM> 
<BR><BR> 
Le calcul se fait à chaque frappe d'un caractère. Les touches SUPPR et BACKSPACE ne sont pas reconnues, un timer effectue le calcul régulièrement. 




<BR><BR><BR><BR><BR><BR><BR> 

<BR> 
<CENTER><A href="http://www.toutjavascript.com"><FONT size="1" face="arial" color="#CCCCFF">Tout JavaScript.com</FONT></A></CENTER> 

</BODY></HTML> 

<!-- Script développé par Olivier Hondermarck -->