Доброго времени суток! В данной статье мы рассмотрим с Вами, как можно удалить последний слэш из строки в 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
Чтобы удалить завершающую косую черту из строки:
- Вызываем метод endsWith() на строке и проверяем, заканчивается ли она косой чертой или нет
- Если он заканчивается косой чертой, используем метод slice для удаления последнего символа из строки.
- Если он не заканчивается косой чертой, возвращаем строку как есть.
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 мы передали следующие параметры:
- start index — индекс первого символа, который будет включен в новую строку.
- end index — извлечь символы до этого индекса, но не включая его. Отрицательный индекс -1 вернет копию строки кроме последнего символа.
Индексы JavaScript отсчитываются от нуля, то есть индекс первого символа в строке равен 0, индекс последнего символа str.length — 1.
Если строка не заканчивается косой чертой, мы просто возвращаем всю исходную строку.
Обратите внимание, что этот подход не работает со сценарием, в котором строка заканчивается несколькими косыми чертами.
Мы удаляем только последнюю косую черту при использовании метода slice.
Таким образом, вот так такими способами можно заменить последний слэш в JavaScript.