Problème avec le nouveau compteur de mot

Voir le sujet précédent Voir le sujet suivant Aller en bas

Résolu Problème avec le nouveau compteur de mot

Message par Lixyr Mer 16 Oct 2013 - 9:46

Bonjour.

Je viens de trouver ce topique : compteur de mots dans lequel Ea donne un code très bien fait pour compter le nombre de mots dans un poste, à une exception près ...

Dans mon champ texte, lorsque je tape :
Code:
<style type="text/css"> { .class :  ;} </style>   plop <lala>
Il me donne ce résultat :
compteur a écrit:Caractères : 0 ♦ Mots : 0
Sachant que j'ai modifié mon code javascript de sorte qu'il ne compte pas non plus les mots entre {} (par exemple lorsqu'on poste du css directement dans un poste), le problème est donc qu'il ne compte pas un mot lorsqu'il est entre < et > mais aussi lorsqu'il est entre > et < ...
ce qui est embêtant puisque mes postes sont constamment modifiés via des balises html, donc j'arrive au final avec des postes ne contenant aucun mot...

Je ne comprend pas, étant donné que le code n'est sensé ne pas compter que les mots compris entre < et > .

Je vous redonne mon code JS pour au cas où :

Code:
var wordcount_signaled= false;
        
       $(function(){
          if(!$('#text_editor_textarea').length || !$.fn["sceditor"]) return;
        
         $(function(){
        
           var e= $('#text_editor_textarea').sceditor('instance');
            if(!e) return;
        
           var w= $('<div class="word-count"></div>').appendTo('.sceditor-container');
        
           var wc= function(){
              var t= e.val().replace(/\[.*\]/g,' ').replace(/<.*>/g,' ').replace(/{.*}/g,' ').replace(/[\x00-\x40\x5b-\x60\x7b-\x7e]/g,' ');
              w.html('Caractères : '+(t.match(/\S/g)||[]).length+' ♦ ' + ' Mots : '+(t.match(/\S{2,}/g)||[]).length);
              wordcount_signaled= false
            };
        
           e.keyDown(function(){
              if(wordcount_signaled) return;
              wordcount_signaled= true;
              setTimeout(function(){ wc() }, 500)
            });
        
           wc()
        
         })
        
       });
Cordialement. ::fleur::




*EDIT*


EEEEET mes cours de Java m'auront au moins servi à quelque chose...
Le code considère que pour
texte a écrit:<style type="text/css"> plop </style>
plop est compris entre < et > puisqu'il prend la plus grande valeur possible, donc en modifiant le code ainsi :
.replace(/<.*?>/g,' ')
il prend la plus petite chaîne correspondante possible, et donc le mot n'est plus compris dans l'exception. /o/

Je devrais poster moins vite la prochaine fois.
résolu 
Lixyr

Lixyr
Aidactive
Aidactive

Féminin
Messages : 7381
Inscrit(e) le : 22/07/2010

https://forum.forumactif.com
Lixyr a été remercié(e) par l'auteur de ce sujet.

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum