#javascript
#javascript
Вопрос:
Я продолжаю получать результат 0 всякий раз, когда я ввожу поисковый запрос. Я пытаюсь найти количество раз, когда шаблон встречается в строке. Так, например, поиск at вернул бы 3. Любой совет о том, куда я собираюсь обратиться?
string =
[
"cat math path"
]
var pattern = prompt('Please enter a search term:');
function check(string,pattern)
{
if(pattern)
{
if(pattern.indexOf(string) == -1)
{
return 0;
}
return count(pattern.substring(pattern.indexOf(string) string.length), string) 1;
}
else
{
return("Nothing entered!");
}
}
alert(check(string,pattern));
Комментарии:
1. 2 проблемы, которые я вижу сразу: вы определяете
string
как массив с[]
. Тогда у вас естьindexOf
обратное. Вы должны делатьstring.indexOf(pattern)
, так как это шаблон, который вы хотите найти в строке.2. Кроме того, JavaScript не имеет собственного
count()
. Вы используете какую-то другую библиотеку?
Ответ №1:
if(pattern.indexOf(string) == -1)
должно быть
if(string.indexOf(pattern) == -1)
Ответ №2:
Я думаю, вы перевернули использование pattern
and string
. Смотрите Документацию indexOf
. Также вы можете легко подсчитать вхождения, с split
помощью которых ваша строка разбивается на массив:
count=string.split(pattern).length - 1;
Где string="cat math path";
(вместо массива)