Los guiones y las comas no dividen palabras

La implementación aplica trim() a los extremos y divide con /\s+/u. Una entrada vacía o solo con espacios cuenta como 0. Espacios, tabulaciones y saltos de línea separan bloques; los guiones, comas y apóstrofos por sí solos no. \s de JavaScript corresponde a WhiteSpace y LineTerminator de la especificación.

Así, state-of-the-art cuenta como 1, one,two como 1 y one, two como 2. don’t stop también tiene dos bloques. ... cuenta como 1 aunque solo sea puntuación; no interpretes el resultado como palabras con significado. words es la estadística del programa en el código.

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              // 1
one,two cuenta como 1; one, two como 2; state-of-the-art como 1
Diagrama propio basado en resultados reales de countText. Las comillas delimitan la entrada y no forman parte de ella. Son recuentos del programa, no lingüísticos.

ECMAScript: CharacterClassEscape

El texto sin espacios no se segmenta por idioma

你好世界 cuenta como 1. Eso no significa que la frase china tenga una sola palabra lingüística. Unicode UAX #29 explica que los límites no se reducen a espacios y puntuación y que algunos idiomas necesitan ajustes. Moyoutil no aplica ese algoritmo ni análisis por diccionario.

countText("你好世界").words // 1
countText("one  two").words // 2
countText("one\ntwo").words // 2
countText(" \t\n").words // 0

Unicode UAX #29: Word Boundaries

Pega texto en el contador de caracteres y bytes para actualizar las cifras. Prueba una frase representativa con guiones o saltos antes de pegar el borrador completo. Si la entrega exige un editor o método, úsalo para la comprobación final. Añadir espacios innecesarios para modificar el número cambia el propio texto.

Preguntas frecuentes

¿Varios espacios o saltos aumentan el recuento?

Los separadores consecutivos forman un límite. Dos espacios entre one y two siguen dando 2; un salto de línea también. El mismo número de palabras puede tener distintos caracteres con espacios o bytes UTF-8.