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)