Mam dwie zmienne:
site1 = "www.somesite.com";
site2 = "www.somesite.com/";
Chcę zrobić coś takiego
function someFunction(site)
{
// If the var has a trailing slash (like site2),
// remove it and return the site without the trailing slash
return no_trailing_slash_url;
}
Jak mam to zrobic?
Odpowiedzi:
Spróbuj tego:
źródło
return site.replace(/\/+$/, "");
Uwaga: IE8 i starsze nie obsługują przesunięć ujemnych substratów. Użyj
str.length - 1
zamiast tego, jeśli chcesz obsługiwać te starożytne przeglądarki.źródło
ES6 / ES2015 zapewnia interfejs API do zadawania pytań, czy łańcuch kończy się czymś, co umożliwia napisanie czystszej i bardziej czytelnej funkcji.
źródło
Użyłbym wyrażenia regularnego:
Musisz jednak upewnić się, że zmienna
site
jest ciągiem.źródło
Ten fragment jest dokładniejszy:
/
ciągów, ponieważ jest to prawidłowy adres URL.źródło
Wiem, że pytanie dotyczy końcowych ukośników, ale znalazłem ten post podczas poszukiwań przycinania ukośników (zarówno na ogonie, jak i na początku literału łańcucha), ponieważ ludzie potrzebowaliby tego rozwiązania, które zamieszczam tutaj:
AKTUALIZACJA :
jak wspomniano w komentarzach @Stephen R , jeśli chcesz usunąć zarówno ukośniki, jak i ukośniki odwrotne zarówno na ogonie, jak i na początku literału łańcucha, napiszesz:
źródło
.replace(/^[\\/]+|[\\/]+$/g, '')
Na podstawie odpowiedzi @vdegenne ... jak rozebrać:
Pojedynczy ukośnik:
theString.replace(/\/$/, '');
Pojedyncze lub kolejne ukośniki końcowe:
theString.replace(/\/+$/g, '');
Pojedynczy ukośnik:
theString.replace(/^\//, '');
Pojedyncze lub kolejne ukośniki:
theString.replace(/^\/+/g, '');
Pojedyncze ukośniki wiodące i końcowe:
theString.replace(/^\/|\/$/g, '')
Pojedyncze lub kolejne ukośniki wiodące i końcowe:
theString.replace(/^\/+|\/+$/g, '')
Aby obsługiwać zarówno ukośniki i pleców ukośniki, wymienić wystąpienia
\/
z[\\/]
źródło
Łatwo o tym wiem
Spowoduje to sprawdzenie / na końcu i jeśli go tam usunie, jeśli nie, zwróci Twój ciąg znaków tak, jak był
Tylko jedna rzecz, której nie mogę jeszcze komentować @ ThiefMaster wow, nie obchodzi cię pamięć, czy nie chcesz uruchomić substra tylko dla if?
Naprawiono obliczanie indeksu zerowego w łańcuchu.
źródło
Oto mały przykład adresu URL.
zaloguj nowy adres URL
źródło
inne rozwiązanie.
źródło
źródło
subtring
? Poza tym usuwa pierwszy ukośnik i wszystko po nim.substring
? Również tak, chciałem usunąć pierwszy ukośnik i wszystko po nim, ponieważ wypełnia on rachunek za opublikowane pytanie i przykładowe dane.