JavaScript. Проверьте строку, которая ДОЛЖНА содержать другую строку.

Я хочу проверить, содержится ли строка b в строке a.
Я пробовал:

var a = "helloworld";
var b = "wold";
if(a.indexOf(b)) { 
    document.write('yes'); 
} else { 
    document.write('no'); 
}

Выход - это да, это не мой ожидаемый вывод, потому что строка b (wold) не полностью содержится в строке a (helloworld) --- wold v.s. мир

Любое предложение проверить строку?

Ответ 1

Прочитайте документацию: MDC String.indexOf:)

indexOf возвращает индекс, в котором было найдено совпадение. Это может быть 0 (что означает "найдено в начале строки" ), а 0 является значением ложности.

indexOf будет возвращать -1, если игла не была найдена (и -1 является правным значением). Таким образом, логика теста должна быть скорректирована для работы с использованием этих кодов возврата. Строка найдена (в начале или в другом месте): index >= 0 или index > -1 или index != -1; Строка не найдена: index < 0 или index == -1.

Счастливое кодирование.

Ответ 2

Вместо этого вам нужно использовать if(a.indexOf(b) > -1). indexOf возвращает -1, когда не может найти строку.

Ответ 3

.indexOf возвращает -1, если совпадение не найдено, что является правдивым значением. Вам нужно будет проверить более явно:

if (a.indexOf(b) != -1)

Ответ 4

Вам нужно проверить, равен ли результат -1. -1 указывает совпадение, но вычисляет значение true в логическом смысле.

var a = "helloworld";
var b = "wold";
if(a.indexOf(b) > -1) { 
  document.write('yes'); 
} else { 
  document.write('no'); 
}

Ответ 5

Это потому, что indexOf возвращает -1, если значение не найдено:

if(a.indexOf(b) != -1) {

Ответ 6

вы можете использовать этот

if(a.indexOf(b) != -1)