JavaScript | Как получить расширение файла из строки?

Есть строка:

"https://foort.ru/upload/iblock/6d9/6db084077b.png"

Как найти последнюю точку в строке?

Для работы со строками проще всего использовать шаблоны регулярных выражений. Для получения результатов сопоставления шаблона нужно использовать методы экземпляров класса RegExp.

Точка является одним из символов синтаксиса шаблона. Если мы хотим искать точку источника строки, то нам нужно её экранировать обратной косой линией.

\.

Теперь нам нужно обозначить окончание строки. Чтобы обозначить окончание строки, нужно воспользоваться утверждением, которое оформляется в виде символа доллара «$«.

Между нашей искомой точкой и концом строки могут быть ДРУГИЕ символы, а могут и не быть. ДРУГИЕ символы — это все те, что нельзя назвать точкой. Мы используем производство класса символа с отрицанием:

[^\.]

Теперь у нас могут быть всего 2 ситуации:

  1. Строка заканчивается точкой
  2. Строка НЕ заканчивается точкой


Оформить это условие сопоставления можно при помощи квантификатора «*«, который ищет варианты от нуля до бесконечности повторений.

[^\.]*

Результат регулярного выражения:

/\.[^\.]*$/

Теперь нужно вызвать сопоставление:

/\.[^\.]*$/.exec("https://foort.ru/upload/iblock/6d9/6db084077b.png")[0]
".png"

Скриншот:

Получили расширение файла из строки - JavaScript
Получили расширение файла из строки — JavaScript

Информационные ссылки

Стандарт ECMAScript — Раздел «CharacterClass» — https://tc39.es/ecma262/#prod-CharacterClass

Стандарт ECMAScript — Раздел «Quantifier» — https://tc39.es/ecma262/#prod-Quantifier

Стандарт ECMAScript — Раздел «22.2.5.2 RegExp.prototype.exec ( string )» — https://tc39.es/ecma262/#sec-regexp.prototype.exec

Поделись записью