Как посчитать сколько раз встречается слово в тексте
Как на js можно посчитать сколько раз слово встречается в строке, пробую таким способом, оно по идее работает, но встречаю проблему когда в тексте это слово встречается дважды подряд написанным текстом, как можно сделать этот код более правильно?
var textToChange='тест тестовый тесттест'
alert(textToChange.split('тест').length - 1)
Код в примере выводит 3, хотя правильнее должен выводить 1
Ответы (2 шт):
Автор решения: Vladimir Gonchar
→ Ссылка
Так Вы же разбиваете строку по вхождению "тест". Оно у Вас 3 раза встречается — вот 3 и показывает. Вам надо разбивать строку по пробелам и искать слово:
const textToChange='текст тест тестовый тесттест'
alert(textToChange.split(' ').filter( (value) => value === 'тест').length)
Автор решения: Aleksandr Belous
→ Ссылка
Решение вашей задачи:
const textToChange='тест тестовый тесттест'
const getWordsCount = (string) => (string.trim().match(/([^а-я]тест[^а-я]|тест[^а-я])/ig) || []).length
getWordsCount(textToChange) // 1