Все вы наверное знакомы с ситуацией, когда мы должны проверить есть ли в данной строке определенная подстрока. Самым простым и надежным способом это сделать, раньше был метод indexOf :
var str = "Hello my world!";
if(str.indexOf('my') !== -1){
console.log('Да данная строка содержит подстроку "my"');
}
Как видите все очень просто, если метод indexOf возвращает -1, то это значит, данная подстрока не содержится строке. Казалось бы проще не куда, но в ES6 появились сразу 3 метода которые проверяют наличие определенной подстроки в строке и сейчас мы с вами рассмотрим их подробнее:
Первый метод includes(), записывается так:
var str = "Hello my world!";
if(str.includes('my')){
console.log('Да данная строка содержит подстроку "my");
}
Как видите по результату, он аналогичен indexOf, и отличается лишь тем, что возвращает не index совпадения, а булево значение.
Если подстрока есть в строке - true
Если подстроки нет в строке -false
Второй метод startsWith:
var str = "Hello my world!";
if(str.startsWith('Hello')){
console.log('Да данная строка содержить подстроку "Hello" и начинается с нее!');
}
То есть метод startsWith() проверяет не только наличие подстроки, но и начинается ли с нее сама строка.
Если подстрока есть и с нее начинается строка - true
Если подстроки нет и/или с нее не начинается строка - false
Третий метод я думаю вы уже догадались, endsWith
var str = "Hello my world!";
if(str.endsWith('y world!')){
console.log('end');
}
Если подстрока есть и на ней заканчивается строка - true
Если подстроки нет и/или на ней не заканчивается строка - false
При использовании этих трех методов нужно учитывать, что они возвращают только булево значение, поэтому будьте внимательны.
Надеюсь я смог донести до вас новую информацию, которая будет очень кстати в решении вашего вопроса! Удачи!