Как подсчитать ключевые слова в текстовом поле с помощью JavaScript?

Я использую string.split(",") для подсчета ключевых слов, но на самом деле он считает запятые вместо ключевых слов.

например:

word1, word2,

на самом деле 2 ключевых слова, но используя string.split(","), я получаю 3 счета.

Есть ли какая-то логика, которую я могу привести, что если после запятой ничего не написано, то не считается.

я пробовал это

function KeywordCountToUse(inputToCheckId) {
    var content = $('#' + inputToCheckId).val();
    var words = content.split(",");
    return words.length;
}

просто используйте массивы let words=[word1,word2]; console.info(слова.длина())

UmairFarooq 02.02.2023 10:22

@UmairFarooq, вы пропустили часть о «в текстовом поле»?

freedomn-m 02.02.2023 10:23

Пожалуйста, поделитесь более подробной информацией, такой как пример ввода, ожидаемый результат и код, который вы используете. Кроме того, действительно ли это проблема, связанная с HTML или jQuery?

Nico Haase 02.02.2023 10:24

@freedomn-м прости

UmairFarooq 02.02.2023 10:24
string.split(",").filter(Boolean)
adiga 02.02.2023 10:24
'word1, word2,'.split(',') будет разделять содержимое, разделенное запятыми.. поэтому результирующий массив будет содержать 3 элемента, потому что у вас есть последняя запятая, разделяющая пустую строку. Кстати Array.length это не функция
Diego D 02.02.2023 10:24

Просто "обрежьте" ,: s = s.replace(/[,\s]+$/, "").split(",")

freedomn-m 02.02.2023 10:25

"Я пробовал это" - а в чем проблема с данным фрагментом?

Nico Haase 02.02.2023 10:27

@NicoHaase именно то, что описано в вопросе: D

freedomn-m 02.02.2023 10:27
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
9
66
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Показаны все три случая. В последнем я проверяю, пуста ли строка или нет, и фильтрую их.

let string = "word1,word2,word3";
let count = string.split(",").length;
console.info("Prints three:",count);

let string2 = "word1,word2,";
let count2 = string2.split(",").length;
console.info("Also Prints three:",count2);


let string3 = "word1,word2,";
let substrings = string3.split(",");
let count3 = substrings.filter(str => str !== "").length;
console.info(count3);

Это помогает, но всякий раз, когда я нажимаю пробел, его счетчик меняется на 3, я хочу, чтобы пользователь что-то писал, а затем считал

Rizwan 02.02.2023 10:41

Должны ли слова подсчитываться на основе "," запятых или пробелов? И как получить значение от пользователя

UmairFarooq 02.02.2023 10:52

чего вы пытаетесь достичь именно

UmairFarooq 02.02.2023 10:53

Спасибо за твою заботу :). Я нашел свое решение с помощью этого let count = str.trim().split(',').filter(i=>i).length;

Rizwan 02.02.2023 11:08

Другие вопросы по теме