endsWith() в JavaScript

endsWith() проверяет, заканчивается ли строка указанным текстом.

let fileName = 'photo.png';

console.log(fileName.endsWith('.png'));

Результат:

true

Строка заканчивается на ‘.png’, поэтому метод вернул true.

Что такое endsWith()

endsWith() - это метод строки. Он возвращает true или false.

let url = 'https://learnjs.ru';

console.log(url.endsWith('.ru'));
console.log(url.endsWith('.com'));

Результат:

true
false

Метод проверяет именно конец строки, а не любое место внутри нее.

Синтаксис

Основная запись выглядит так:

string.endsWith(searchString);

searchString - текст, которым должна заканчиваться строка.

let text = 'JavaScript';

console.log(text.endsWith('Script'));

Результат:

true

Проверка конца строки

endsWith() удобно использовать, когда важно окончание значения.

let fileName = 'report.pdf';

if (fileName.endsWith('.pdf')) {
  console.log('Это PDF-файл');
}

Результат:

Это PDF-файл

Еще пример - проверка домена.

let site = 'learnjs.ru';

console.log(site.endsWith('.ru'));

Результат:

true

Регистр имеет значение

endsWith() учитывает регистр букв.

let fileName = 'photo.PNG';

console.log(fileName.endsWith('.PNG'));
console.log(fileName.endsWith('.png'));

Результат:

true
false

Если нужно проверить окончание без учета регистра, можно привести строки к одному регистру.

let fileName = 'photo.PNG';
let extension = '.png';

console.log(fileName.toLowerCase().endsWith(extension.toLowerCase()));

Результат:

true

Проверка с длиной

У endsWith() есть второй аргумент. Он задает длину части строки, которую нужно проверить.

string.endsWith(searchString, length);

Например, возьмем только первые 10 символов строки ‘JavaScript Guide’.

let text = 'JavaScript Guide';

console.log(text.endsWith('Script', 10));

Результат:

true

Первые 10 символов образуют строку ‘JavaScript’, и она заканчивается на ‘Script’.

Если проверять всю строку, результат будет другим.

let text = 'JavaScript Guide';

console.log(text.endsWith('Script'));

Результат:

false

endsWith() и includes()

includes() проверяет, есть ли текст где угодно внутри строки.

let fileName = 'archive.final.zip';

console.log(fileName.includes('.final'));

Результат:

true

endsWith() проверяет только конец строки.

let fileName = 'archive.final.zip';

console.log(fileName.endsWith('.final'));
console.log(fileName.endsWith('.zip'));

Результат:

false
true

Если важно именно окончание строки, лучше использовать endsWith().

Итого

endsWith() проверяет, заканчивается ли строка указанным текстом.

  • Метод возвращает true или false.
  • Проверяется конец строки, а не любое место внутри нее.
  • Регистр букв влияет на результат.
  • Вторым аргументом можно указать длину проверяемой части строки.
  • Если нужно искать текст в любом месте строки, подойдет includes().