Traits d’union et virgules ne séparent pas les mots
Le programme applique trim() aux extrémités puis sépare avec /\s+/u. Une entrée vide ou composée uniquement d’espaces vaut 0. Espaces, tabulations et sauts séparent les blocs ; traits d’union, virgules et apostrophes seuls ne le font pas. \s en JavaScript correspond à WhiteSpace et LineTerminator de la spécification.
Ainsi, state-of-the-art vaut 1, one,two vaut 1 et one, two vaut 2. don’t stop contient aussi deux blocs. ... vaut 1 malgré sa ponctuation seule : ce n’est pas un nombre de mots porteurs de sens. words est la statistique de l’outil dans le code.
countText("state-of-the-art").words // 1
countText("one,two").words // 1
countText("one, two").words // 2
countText("don’t stop").words // 2
countText("...").words // 1Le texte sans espaces n’est pas segmenté selon la langue
你好世界 vaut 1. Cela ne veut pas dire que la phrase chinoise comporte un seul mot linguistique. Unicode UAX #29 explique que les frontières ne se limitent pas aux espaces et à la ponctuation et que certaines langues nécessitent des adaptations. Moyoutil n’applique ni cet algorithme ni une analyse par dictionnaire.
countText("你好世界").words // 1
countText("one two").words // 2
countText("one\ntwo").words // 2
countText(" \t\n").words // 0Unicode UAX #29: Word Boundaries
Collez du texte dans le compteur de caractères et d’octets pour actualiser les valeurs. Testez une phrase avec traits d’union ou sauts avant le brouillon complet. Si un éditeur ou une méthode est imposé, utilisez-le pour le contrôle final. Ajouter des espaces inutiles pour changer le compte modifie le texte lui-même.
Questions fréquemment posées
Les espaces répétés ou sauts augmentent-ils le compte ?
Des séparateurs consécutifs forment une frontière. Deux espaces entre one et two donnent encore 2 ; un saut de ligne aussi. Un même compte peut avoir des nombres différents de caractères avec espaces ou d’octets UTF-8.