Как удалить первый и последний символ строки

161

Мне интересно, как удалить первый и последний символ строки в Javascript.

Мой URL показывает, /installers/и я просто хочу installers.

Иногда так будет /installers/services/и мне просто нужно installers/services.

Так что я не могу просто снять косую черту /.

арахис
источник
Я пытаюсь просто раздеть первый и последний персонаж этого. Я просто перехватываю URL
Peanut
Я просто удивляюсь, почему никто, кажется, не замечает, что урезание косой черты (как показывает текст) и безоговорочное удаление первого и последнего символа строки (как указывает заголовок) не совсем то же самое. Но это объясняет широкий спектр ответов ниже.
JensG

Ответы:

360

Ну вот

var yourString = "/installers/";
var result = yourString.substring(1, yourString.length-1);

console.log(result);

Или вы можете использовать .sliceкак предложено Ankit Gupta

var yourString = "/installers/services/";

var result = yourString.slice(1,-1);

console.log(result);

Документация для среза и подстроки .

Dieterg
источник
6
Но URL не заканчивается косой чертой, он займет 1 символ
Martijn
7
@ Martijn это точно отвечает на вопрос. Никто не говорил, что ты не хочешь лишать ничего кроме слэша;). +1 от меня - код должен сказать, что он должен делать, а не как примеры регулярных выражений здесь.
Episodex
Но если вам нужно перейти на другой сервер, косая черта может отсутствовать (или, может быть, вы настроили изменение преднамеренно). Не голосуя, просто указав на это :)
Martijn
Конечная косая черта всегда будет там, потому что она указывает на файл index.php ...
Peanut
131

Может быть, лучше использовать ломтик как:

string.slice(1, -1)
Анкит Гупта
источник
14

Я не думаю, что jQuery имеет какое-либо отношение к этому. В любом случае, попробуйте следующее:

url = url.replace(/^\/|\/$/g, '');
лист
источник
1
Это выглядит как самый правильный на данный момент. Единственное, я бы добавить квантор, только в случае , если: /^\/+|\/+$/g.
Георг
8

Вы можете проверить это:

"string".replace(/^\/?|\/?$/, "")
"/installers/services/".replace(/^\/?|\/?$/, "") // -> installers/services

Регулярное выражение объяснило:
- Необязательный первый слэш:, ^/?экранированный -> ^\/?( ^означает начало строки)
- Трубка (|) может быть прочитана как or
- Чем опциональный слэш в конце -> /?$, экранированный -> \/?$( $означает конец строки )

В сочетании это было бы ^/?|/$без побега. Необязательный первый слеш ИЛИ необязательный последний слэш

Мартейн
источник
Дело в том, что я не могу убрать символ "/", потому что иногда мне понадобятся те, чтобы отделить внутренние части URL
Peanut
Внутренние косые черты не уходят. Я отредактирую и объясню регулярное выражение
Martijn
3
Я думаю, что вам нужен глобальный флаг, чтобы это работало: "/installers/services/".replace(/^\/?|\/?$/g," ")
Мэтт Гонт
3

Вы можете использовать substringметод

s = s.substring(0, s.length - 1) //removes last character

другой альтернативой является sliceметод

Hessam
источник
3

Вы можете сделать что-то подобное:

"/installers/services/".replace(/^\/+/g,'').replace(/\/+$/g,'')

Это регулярное выражение является распространенным способом иметь такое же поведение trim функции, используемой во многих языках.

Возможная реализация функции обрезки:

function trim(string, char){
    if(!char) char = ' '; //space by default
    char = char.replace(/([()[{*+.$^\\|?])/g, '\\$1'); //escape char parameter if needed for regex syntax.
    var regex_1 = new RegExp("^" + char + "+", "g");
    var regex_2 = new RegExp(char + "+$", "g");
    return string.replace(regex_1, '').replace(regex_2, '');
}

Который удалит все /в начале и конце строки. Он обрабатывает случаи как///installers/services///

Вы также можете просто сделать:

"/installers/".substring(1, string.length-1);
OlivierH
источник
1

использование .replace(/.*\/(\S+)\//img,"$1")

"/installers/services/".replace(/.*\/(\S+)\//img,"$1"); //--> services

"/services/".replace(/.*\/(\S+)\//img,"$1"); //--> services
Виктор Рибейру да Силва Элой
источник
Это не делает то, что просил OP.
Эмиль Бержерон
1

если вам нужно удалить первый букву строки

string.slice(1, 0)

и для удаления последней буквы

string.slice(0, -1)
Ризо
источник
-3
url=url.substring(1,url.Length-1);

Таким образом, вы можете использовать каталоги, если они похожи на ... / ... / ... / ... и т. Д.

Кузгун
источник
1
url.lengthнетurl.Length
Артур