Как удалить последний слеш из строки в JavaScript

Доброго времени суток! В данной статье мы рассмотрим с Вами, как можно удалить последний слэш из строки в JavaScript

Способ №1

Используем метод String.replace() для удаления завершающей косой черты из строки, например str.replace(//+$/, '').
Метод replace удалит косую черту из строки, заменив ее пустой строкой.


function deleteTrailingSlash(str) {
  return str.replace(//+$/, '');
}

//  "myrusakov.com"
console.log(deleteTrailingSlash('myrusakov.com/'));
//  "myrusakov.com"
console.log(deleteTrailingSlash('myrusakov.com///'));
//  "myrusakov.com"
console.log(deleteTrailingSlash('myrusakov.com'));

Мы использовали метод String.replace, чтобы получить новую строку, не содержащую косых черт в конце.

Мы передали replace методу следующие 2 аргумента:

1) Регулярное выражение , которое мы хотим найти в строке.
2) Строка замены для каждого совпадения. Так как мы хотим удалить косую черту в конце, то в качестве замены мы предоставили пустую строку.
Косая черта // отмечает начало и конец регулярного выражения.

Знак плюс + соответствует предыдущему элементу (косая черта) 1 или более раз.

Знак доллара $ соответствует концу строки.

Т.е. регулярное выражение соответствует одной или нескольким косым чертам в конце строки.

Способ №2 — использовать метод String.endsWith

Чтобы удалить завершающую косую черту из строки:

  1. Вызываем метод endsWith() на строке и проверяем, заканчивается ли она косой чертой или нет
  2. Если он заканчивается косой чертой, используем метод slice для удаления последнего символа из строки.
  3. Если он не заканчивается косой чертой, возвращаем строку как есть.


function deleteTrailingSlash(str) {
  return str.endsWith('/') ? str.slice(0, -1) : str;
}

//  "myrusakov.com"
console.log(deleteTrailingSlash('myrusakov.com/'));
//  "myrusakov.com"
console.log(deleteTrailingSlash('myrusakov.com'));

В данном способе мы использовали тернарный оператор, очень похожий на оператор if/else.

Если строка заканчивается косой чертой, мы вызываем метод String.slice и возвращаем всю строку до последнего символа.

В метод String.slice мы передали следующие параметры:

  1. start index — индекс первого символа, который будет включен в новую строку.
  2. end index — извлечь символы до этого индекса, но не включая его. Отрицательный индекс -1 вернет копию строки кроме последнего символа.

Индексы JavaScript отсчитываются от нуля, то есть индекс первого символа в строке равен 0, индекс последнего символа str.length — 1.

Если строка не заканчивается косой чертой, мы просто возвращаем всю исходную строку.

Обратите внимание, что этот подход не работает со сценарием, в котором строка заканчивается несколькими косыми чертами.
Мы удаляем только последнюю косую черту при использовании метода slice.

Таким образом, вот так такими способами можно заменить последний слэш в JavaScript.

Источник