Я использую string.split(",") для подсчета ключевых слов, но на самом деле он считает запятые вместо ключевых слов.
например:
word1, word2,
на самом деле 2 ключевых слова, но используя string.split(","), я получаю 3 счета.
Есть ли какая-то логика, которую я могу привести, что если после запятой ничего не написано, то не считается.
я пробовал это
function KeywordCountToUse(inputToCheckId) {
var content = $('#' + inputToCheckId).val();
var words = content.split(",");
return words.length;
}
@UmairFarooq, вы пропустили часть о «в текстовом поле»?
Пожалуйста, поделитесь более подробной информацией, такой как пример ввода, ожидаемый результат и код, который вы используете. Кроме того, действительно ли это проблема, связанная с HTML или jQuery?
@freedomn-м прости
string.split(",").filter(Boolean)'word1, word2,'.split(',') будет разделять содержимое, разделенное запятыми.. поэтому результирующий массив будет содержать 3 элемента, потому что у вас есть последняя запятая, разделяющая пустую строку. Кстати Array.length это не функция
Просто "обрежьте" ,: s = s.replace(/[,\s]+$/, "").split(",")
"Я пробовал это" - а в чем проблема с данным фрагментом?
@NicoHaase именно то, что описано в вопросе: D



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Показаны все три случая. В последнем я проверяю, пуста ли строка или нет, и фильтрую их.
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, я хочу, чтобы пользователь что-то писал, а затем считал
Должны ли слова подсчитываться на основе "," запятых или пробелов? И как получить значение от пользователя
чего вы пытаетесь достичь именно
Спасибо за твою заботу :). Я нашел свое решение с помощью этого let count = str.trim().split(',').filter(i=>i).length;
просто используйте массивы let words=[word1,word2]; console.info(слова.длина())