Удаление завершающего слеша из URL в JavaScript и Python

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Если вам нужно избавиться от слеша в конце URL-строки, вы можете воспользоваться методом .replace() в сочетании с регулярным выражением:

JS
Скопировать код
let result = str.replace(/\/$/, "");

Следует учесть, что данное регулярное выражение /\/$/ отыскивает и удаляет слеш на конце строки, будто это нежелательный элемент.

Кинга Идем в IT: пошаговый план для смены профессии

Основные способы работы с различными форматами URL

URL может быть представлен в различном формате, и под каждый из них существует свой способ обработки.

Метод ES6: Использование endsWith и slice

Для решения задачи в современных браузерах удобно использовать новые возможности ES6:

JS
Скопировать код
let cleanUrl = (url) => url.endsWith('/') ? url.slice(0, -1) : url;

Мы проверяем законченность URL слешем с помощью метода endsWith. В случае положительного ответа метод slice убирает нежелательный символ.

Традиционный способ: Использование substr для старых браузеров

Если вам нужно обеспечить поддержку старых браузеров, допустимо использовать метод substr:

JS
Скопировать код
function removeTrailingSlash(url) {
  if (typeof url === 'string') {
    return url.substr(-1) === '/' ? url.substr(0, url.length – 1) : url;
  } else {
    throw new Error('Ожидаемый тип — строка, не динозавр 🦖');
  }
}

substr способен обработать строку для старых версий браузеров и вернуть ошибку в случае, если URL-адрес не является строкой.

Для сложных случаев: Особые ситуации

Иногда URL содержат несколько слешей или пробелы перед ними:

JS
Скопировать код
url = "https://example.com// ".replace(/\s+$/, '').replace(/\/+$/, "");

Сначала пробелы удаляются регулярным выражением \s+$, а затем группы слешей уничтожаются с помощью \/+$.

Удаление слешей в начале и конце строки

Если требуется удалить слеши, находящиеся в начале и в конце строки, можно применить:

JS
Скопировать код
let removeLeadTrainSlash = (url) => url.replace(/^\/+|\/+$/g, '')

Такое регулярное выражение без проблем справится с обоими типами слешей одновременно.

Визуализация

Вероятно будет полезно представить URL в виде дверного коврика с торчащей нитью:

Перед входом:
Коврик с ниткой – [🚪🧹🧵]

В результате обработки:
Коврик без ниток – [🚪🧹]

JavaScript в нашем случае выступает как невидимые ножницы, которые аккуратно обрезают лишнее:

JS
Скопировать код
let url = "https://example.com/"; // Конец строки с ниткой 🧵
url = url.replace(/\/$/, ""); // ✂️ Теперь коврик опрятен!

Теперь все готово для входа:

До: "https://example.com/" ↗️
После: "https://example.com" ✔️

Конечные слеши больше не создают проблем! 🚫🧵

Построение эффективных решений

Заключительный этап — рассмотрение работы со слешами разного направления.

Регулярные выражения для различных типов слешей

Если требуется обработать случай смешанных слешей:

JS
Скопировать код
url = "https://example.com\\\\".replace(/[\\/]+$/, "");

Такое выражение удаляет как прямые, так и обратные слеши.

Цепочка строковых методов для улучшения контроля

Для обеспечения полного контроля над процессом можно производить удаление слешей при помощи цепочки методов:

JS
Скопировать код
url = "https://example.com/".split('/').filter(Boolean).join('/');

Данные методы разбивают URL, фильтруют пустые элементы и трансформируют части строки обратно.

Полезные материалы

  1. String.prototype.replace() – JavaScript | MDN — Детализированная информация о методе replace.
  2. Tutorial | DigitalOcean — Уровень мастерства в использовании регулярных выражений.
  3. Truthy and Falsy Values: When All is Not Equal in JavaScript — SitePoint — О понятии истинности и ложности в JavaScript.
  4. JavaScript String slice() Method — Искусство работы со строками в JavaScript.
  5. Новые вопросы по 'javascript+string' – Stack Overflow — Обсуждение вопросов и ответов по работе со строками в JavaScript.
  6. Справочник по регулярным выражениям от DaveChild — Отличный справочник по регулярным выражениям.
  7. Руководство по регулярным выражениям – Классы символов — Понимание классов символов в регулярных выражениях.