Estoy tratando de armar una expresión regular para un comando de JavaScript que cuente con precisión el número de palabras en un área de texto.Expresión regular para contar palabras con precisión usando JavaScript
Una solución que había encontrado es el siguiente:
document.querySelector("#wordcount").innerHTML = document.querySelector("#editor").value.split(/\b\w+\b/).length -1;
Pero esto no cuenta los caracteres no latinos (por ejemplo: cirílico, Hangul, etc); se salta completamente sobre ellos.
Otro junté:
document.querySelector("#wordcount").innerHTML = document.querySelector("#editor").value.split(/\s+/g).length -1;
Pero esto no cuenta con precisión a menos que el documento termina en un carácter de espacio. Si se agrega un carácter de espacio al valor que se cuenta, cuenta 1 palabra incluso con un documento vacío. Además, si el documento comienza con un carácter de espacio, se contará una palabra extraña.
¿Hay una expresión regular que pueda poner en este comando que cuente las palabras con precisión, independientemente del método de entrada?
Fuera de tema, pero 'document.querySelector (" # wordcount ")' se puede escribir 'document.getElementById (" wordcount ")', que puede ser más compatible entre navegadores o más rápido; es poco probable que sea menos compatible o más lento. –
Falta una definición precisa del término "palabra". – Tomalak
@Tomalak, falta en general, o falta en la pregunta? ;) –