Чтобы проверить, есть ли подстрока в строке я буду использовать метод indexOf. Предназначение данной функции вернуть вхождение заданного значения. Если функция не найдет совпадение в строке, она вернет -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('Подстрока не найдена.');
}

Проверяем. Результат должен быть: "Подстрока найдена!", а если так, то наша проверка работает верно.
Автор: