-1
. Пример:
var str = 'Форум Web Мастера и Компьютерщика';
alert(str.indexOf('Форум')); // 0
alert(str.indexOf('Web')); // 6
alert(str.indexOf('danfa')); // -1
Известно, что условие (
if
) воспринимает -1
, как true
, а 0
, как false
, следовательно, сделав такую проверку:
var str = 'Форум Web Мастера и Компьютерщика';
if (str.indexOf('Форум')) {
alert('Подстрока найдена!');
}
else {
alert('Подстрока не найдена.');
}
Мы получим сообщение: "
Подстрока не найдена.
", так как indexOf вернет 0
, а если будем таким же способом проверять наличие подстроки danfa, то скрипт выведет сообщение "Подстрока найдена!". Проверка не правильно отработала в обоих случаях...Чтобы избежать неверных проверок, к результату функции indexOf мы прибавим единицу (
+ 1
), тогда все встанет на свои места, первое найденное совпадение (0
) - станет единицей, а отрицательный результат станет нулем. Делаем так:
var str = 'Форум Web Мастера и Компьютерщика';
if (str.indexOf('Форум') + 1) {
alert('Подстрока найдена!');
}
else {
alert('Подстрока не найдена.');
}
Проверяем. Результат должен быть: "
Подстрока найдена!
", а если так, то наша проверка работает верно.