Я только что попробовал этот подход:
editor.getContent()
.replace(/<[^>]*>/ig, ' ')
.replace(/<\/[^>]*>/ig, ' ')
.replace(/ | /gi, ' ')
.replace(/\s+/ig, ' ')
.trim();
- Заменяет открывающие и закрывающие HTML-теги пробелом
- Заменяет различные известные специальные символы пробелом (также добавьте ваши)
- Заменяет несколько пробелов одним пробелом
Работает достаточно хорошо, но, очевидно, не идеально.Для целей подсчета слов мне нужно только приблизительное значение простого текста, поэтому я готов игнорировать угловые случаи, такие как выделение части слова полужирным или курсивом (при замене <b>a</b><i>x</i>
на два слова вместо * a b
будут выводиться два отдельных слова)1014 *).
Это расширение Регулярное выражение для удаления тегов HTML из строки
Надеюсь, это поможет.