Membres connectés récemment
[AWESOMEBB] Compteur de caractères et de mots
2 participants
Page 1 sur 1 • Partagez
- Version du forum :AWESOMEBB
- Templates modifiés :oui
- Navigateur :Autre
Bonjour,
Ca fait un petit temps que je n'étais pas venu ici. J'espère que vous allez tous et toutes bien.
Sur mon forum, j'utilise ce script qui me permet d'ajouter à l'éditeur un compteur de mots et de caractères:
Ce script ignore les balises BBCODE et HTML. J'ai essayer de le modifier pour qu'il ignore également les caractères de ponctuation mais je n'y arrive malheureusement pas.
Je viens donc demander de l'aide ici.
Bonne journée
Ca fait un petit temps que je n'étais pas venu ici. J'espère que vous allez tous et toutes bien.
Sur mon forum, j'utilise ce script qui me permet d'ajouter à l'éditeur un compteur de mots et de caractères:
- Code:
$(function(){
if(!$('#text_editor_textarea').length || !$.fn["sceditor"]) return;
var smil=$('#text_editor_textarea').length;
if(smil)
{
$(function(){
$('.sceditor-container').after('<div id="M14_Decompte"><span class="one"></span> mot(s) - <span class="two"></span> caractère(s) (espace non compris)</div>');
var texta=$('#text_editor_textarea').sceditor('instance');
if(!texta) return;
var raf= function(){
//var num=texta.val().length;
// On ne prend pas en compte les mots entre [] ou <>
var nb = texta.val().replace(/\[.*?\]/g,' ').replace(/<.*?>/g,' ').replace(/:.*?:/g,' ');
// On compte le nombre de caractères, sans les espaces
var nb_carac = (nb.match(/\S/g)||[]).length;
// On compte le nombre de mot de 1 lettres ou plus
var nb_mots = (nb.match(/\S{1,}/g)||[]).length ;
$('.one').text(nb_mots);
$('.two').text(nb_carac);
};
texta.keyUp(function(){setTimeout(function(){ raf() }, 2000)});raf()})
}
});
Ce script ignore les balises BBCODE et HTML. J'ai essayer de le modifier pour qu'il ignore également les caractères de ponctuation mais je n'y arrive malheureusement pas.
Je viens donc demander de l'aide ici.
Bonne journée
EDIT :
Voici le CSS associé :
- Code:
$(function(){
if(!$('#text_editor_textarea').length || !$.fn["sceditor"]) return;
var smil=$('#text_editor_textarea').length;
if(smil)
{
$(function(){
$('.sceditor-container').after('<div id="M14_Decompte"><span class="one"></span> mot(s) - <span class="two"></span> caractère(s) (espace non compris)</div>');
var texta=$('#text_editor_textarea').sceditor('instance');
if(!texta) return;
var raf= function(){
//var num=texta.val().length;
// On ne prend pas en compte les mots entre [] ou <>
var nb = texta.val().replace(/\[.*?\]/g,' ').replace(/<.*?>/g,' ').replace(/:.*?:/g,' ');
// On compte le nombre de caractères, sans les espaces
var nb_carac = (nb.match(/\S/g)||[]).length;
// On compte le nombre de mot de 1 lettres ou plus
var nb_mots = (nb.match(/\S{1,}/g)||[]).length ;
$('.one').text(nb_mots);
$('.two').text(nb_carac);
};
texta.keyUp(function(){setTimeout(function(){ raf() }, 2000)});raf()})
}
});
Milouze14 aime ce message
Salut Mathis,
alors ce script devrait faire l'affaire en gardant l'esprit du compteur de mots .
Remplaces ce dernier par celui-ci:
alors ce script devrait faire l'affaire en gardant l'esprit du compteur de mots .
Remplaces ce dernier par celui-ci:
- Code:
$(function(){
if(!$('#text_editor_textarea').length || !$.fn["sceditor"]) return;
var smil=$('#text_editor_textarea').length;
if(smil)
{
$(function(){
$('.sceditor-container').after('<div id="M14_Decompte"><span class="one"></span> mot(s) - <span class="two"></span> caractère(s) (caractéres spéciaux non compris)</div>');
var texta=$('#text_editor_textarea').sceditor('instance');
if(!texta) return;
var raf= function(){
// On ne prend pas en compte les caracteres speciaux et ponctuation
var nb = texta.val().replace(/\[.*?\]/g,' ').replace(/<.*?>/g,' ').replace(/:.*?:/g,' ').replace(/[^a-zA-Z0-9]/g,'');
// On compte le nombre de caractères, sans les espaces
var nb_carac = (nb.match(/\S/g)||[]).length;
// On compte le nombre de mot de 1 lettres ou plus
var nb_mots = (nb.match(/\S{1,}/g)||[]).length ;
$('.one').text(nb_mots);
$('.two').text(nb_carac);
};
texta.keyUp(function(){setTimeout(function(){ raf() }, 2000)});raf()})
}
});
Bonjour Phil,
Merci pour ton aide. Malheureusement, le nouveau script bloque le compteur de mot à un seul maintenant.
Et c'est vrai que j'ai oublié de le préciser dans ma demande, j'en suis désolé. Mais je voudrais que les caractères de ponctuation soient ignorés pour le compteur de mots uniquement et pas pour celui des caractères. C'est ma faute, j'ai mélangé les 2 :/
Merci pour ton aide. Malheureusement, le nouveau script bloque le compteur de mot à un seul maintenant.
Et c'est vrai que j'ai oublié de le préciser dans ma demande, j'en suis désolé. Mais je voudrais que les caractères de ponctuation soient ignorés pour le compteur de mots uniquement et pas pour celui des caractères. C'est ma faute, j'ai mélangé les 2 :/
Je t'en prie ,
remplaces le script par celui-ci alors:
remplaces le script par celui-ci alors:
- Code:
$(function(){
if(!$('#text_editor_textarea').length || !$.fn["sceditor"]) return;
var smil=$('#text_editor_textarea').length;
if(smil)
{
$(function(){
$('.sceditor-container').after('<div id="M14_Decompte"><span class="one"></span> mot(s) - <span class="two"></span> caractère(s) (caractéres spéciaux non compris)</div>');
var texta=$('#text_editor_textarea').sceditor('instance');
if(!texta) return;
var raf= function(){
// On ne prend pas en compte les caracteres speciaux et ponctuation
var nb = texta.val().replace(/\[.*?\]/g,' ').replace(/<.*?>/g,' ').replace(/:.*?:/g,' ');
// On compte le nombre de caractères, sans les espaces
var nb_carac = (nb.match(/\S/g)||[]).length;
// On compte le nombre de mot de 1 lettres ou plus
var nb_mots = (nb.match(/[a-zA-Z0-9éèàêâùïüëçô]{1,}/g)||[]).length ;
$('.one').text(nb_mots);
$('.two').text(nb_carac);
};
texta.keyUp(function(){setTimeout(function(){ raf() }, 2000)});raf()})
}
});
MathisB aime ce message
Bonsoir Mathis,
de rien cher ami, bonne fin de soirée à toi aussi.
Message envoyé via la réponse rapide par: @Milouze14
de rien cher ami, bonne fin de soirée à toi aussi.
Hello
Sujet résolu et déplacé dans le forum adéquate
A bientôt pour une prochaine demande
Sujet résolu et déplacé dans le forum adéquate
A bientôt pour une prochaine demande
Message envoyé via la réponse rapide par: @Milouze14
Sujets similaires
Créer un compte ou se connecter pour répondre
Vous devez être membre pour répondre.
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum