bg62
Messages postés23712Date d'inscriptionsamedi 22 octobre 2005StatutModérateurDernière intervention18 avril 2025
-
10 avril 2014 à 08:32
prosthetiks
Messages postés1189Date d'inscriptiondimanche 7 octobre 2007StatutMembreDernière intervention12 juin 2020
-
26 oct. 2014 à 00:57
Bonjour,
Je suis en train d'essayer de mettre à disposition quelques outils pour ' compter ' les mots et les caractères.
J'ai trouvé quelques 'sources', mais je suis une vraie bille en JavaScript !!!
D'où cette demande, car grand besoin d'aide !
1er problème: Ce ' code ' que j'ai ici peut certainement être bien ' nettoyé ', puisque certaines fonctions en sont pas utilisées, mais ça aussi je ne sais pas faire ...
Je n'aurais besoin que d'afficher que:
- les mots et les caractères, avec les options suivantes: ignorer ou non les apostrophes, ignorer ou non les tirets, ignorer ou non les stopwords, compter les caractères avec ou sans les espaces.
Voici ce que j'ai trouvé:
functionafficherCalcul(){
longueur =count();
$("#nb_mots").html(longueur);
$("#temps_lecture").html(temps(longueur,"lecture"));
$("#temps_frappe").html(temps(longueur,"frappe"));
$("#temps_manuscrite").html(temps(longueur,"manuscrite"));
$("#temps_elocution").html(temps(longueur,"elocution"))}functioncount(){
text = $(".champ_count").val();
text2 = text;if($("#apostrophes").prop("checked")){var e =newRegExp("[\\'\\']","gi");
text = text.replace(e,"")}else{var e =newRegExp("[\\'\\']","gi");
text = text.replace(e," ")}if($("#tiret").prop("checked")){var e =newRegExp("[\\-]","gi");
text = text.replace(e,"")}else{var e =newRegExp("[\\-]","gi");
text = text.replace(e," ")}if($("#stop_word").prop("checked")){var t;var n;var r;var i;var s =newArray("afin","ainsi","alors","au","aucuns","aussi","autre","aux","avant","avec","avoir","bon","ça","car","ce","ceci","cela","celà","ces","c'est","cet","cette","ceux","chaque","ci","comme","comment","dans","debut","début","dedans","dehors","depuis","des","deux","devrait","doit","donc","dos","droite","du","d'un","d'une","egalement","elle","elles","en","encore","ensuite","es","essai","est","et","étaient","étais","était","étant","état","etc","ete","été","étée","étées","êtes","étés","étiez","étions","être","eu","eux","fait","faites","fois","font","force","fûmes","furent","fus","fusse","fussent","fusses","fussiez","fussions","fut","fût","fûtes","grace","grâce","haut","hors","ici","il","ils","ils4les","je","juste","la","là","le","les","leur","leurs","ma","maintenant","mais","meme","même","mes","mieux","mine","moins","mon","mot","ni","nommés","nos","notre","nous","nouveaux","ou","où","par","parce","parole","pas","personnes","peu","peut","pièce","plupart","pour","pourquoi","quand","que","quel","quelle","quelles","quels","qui","sa","sans","sera","serai","seraient","serais","serait","seras","serez","seriez","serions","serons","seront","ses","seulement","si","sien","soi","soient","sois","soit","sommes","son","sont","sous","soyez","soyons","suis","sujet","sur","ta","tandis","tellement","tels","tes","ton","tous","tout","toute","toutes","tres","très","trop","tu","un","une","valeur","voie","voient","vont","vos","votre","vous","vu");for(i =0; i < s.length; i++){
t = s[i];
n ="^\\s*"+ t +"\\s*$";
n +="|^\\s*"+ t +"\\s+";
n +="|\\s+"+ t +"\\s*$";
n +="|\\s+"+ t +"\\s+";
r =newRegExp(n,"gi");
text = text.replace(r," ");
text2 = text2.replace(r," ")}}var o =newRegExp("[^\\w^àáâãäåçèéêëìíîïðòóôõöùúûüýÿ]","gi");
text = text.replace(o," ");
text = text.replace(/\s+/g," ");
text = $.trim(text);
atext = text.split(" ");var o =newRegExp("(\r\n|\r|\n)","g");
text2 = text2.replace(o,"");
text2 = $.trim(text2);if($("#mot_cle").val()!=""){var u = $("#mot_cle").val();
e =newRegExp("\\b"+ u +"\\b","g");var a = text.match(e);if(a){
$("#mot_cle_resultat").html(a.length)}else{
$("#mot_cle_resultat").html("0")}}if($("#mot_cle").val()==""&& $("#mot_cle_resultat").text()!=""|| atext[atext.length -1]==""){
$("#mot_cle_resultat").html("0")}if(atext[atext.length -1]==""){
longueur = atext.length -1}else{
longueur = atext.length
}var f =nbcaractere(false, text2);
$("#nb_caracteres").html(nbcaractere(true, text2));
$("#nb_caracteres_espace").html(f);var l =Math.ceil(f /78);var c =Math.ceil(f /41);
$("#lignes_ordinateur").html(l);
$("#lignes_papier").html(c);
$("#pages_ordinateur").html(Math.ceil(l /42));
$("#pages_papier").html(Math.ceil(c /31));return longueur
}functionnbcaractere(e, t){if(!e){
t = t.replace(/\s+/g,"")}return t.length
}functiontemps(e, t){var n =0;switch(t){case"lecture":
n =Math.ceil(e *60/250);break;case"frappe":
n =Math.ceil(e *60/40);break;case"manuscrite":
n =Math.ceil(e *60/25);break;case"elocution":
n =Math.ceil(e *60/150);break}var r = n;var i =0;var s =0;if(r >=60){
i =Math.floor(r /60);
r = r %60}if(i >=60){
s =Math.floor(i /60);
i = i %60}if(s >0){return s +" h "+ i +" min "+ r +" s"}if(i >0){return i +" min "+ r +" s"}if(r >=0){return r +" s"}}
$(function(){
$(".champ_count").keyup(function(){afficherCalcul()});
$(".champ_count").change(function(){afficherCalcul()});
$("#mot_cle").keyup(function(){afficherCalcul()});
$("#mot_cle").change(function(){afficherCalcul()});
$(".option").change(function(){afficherCalcul()})})
Bon certes, il tourne, mais des lignes comme ' $("#temps_frappe").html(temps(longueur, "frappe")); ' me laissent supposer qu'il peut remplir d'autres fonctions, inutiles pour moi, et donc être plus qu'un peu nettoyé et allégé ...
second problème: - une autre chose, à voir en second lieu:
- il ne donne pas " exactement " les mêmes résultats que celui-ci :
plus simple, apparemment, plus restreint aussi mais pour ce qui est du ' comptage ' des caractères pas normal non plus que les résultats soient différents !!!
Ce serait vraiment sympa d'arriver à me dépanner sur ce coup là, mais, attention, je l'ai dit, je suis une 'bille' ;)
GrandS merciS à l'avance.
bg
le 'www' est fait aussi pour communiquer, partager et échanger, non ?
merci d'avoir la politesse de répondre à ceux qui essaient de vous aider