Co najmniej trzy sposoby:
Wyrażenie regularne:
var result = /[^/]*$/.exec("foo/bar/test.html")[0];
... który mówi „pobierz serię znaków niezawierających ukośnika” ( [^/]*
) na końcu ciągu ( $
). Następnie pobiera dopasowane znaki z zwróconego obiektu dopasowania przez indeksowanie do niego ( [0]
); w dopasowanym obiekcie pierwszym wpisem jest cały dopasowany ciąg. Nie ma potrzeby grup przechwytywania.
Przykład na żywo
Korzystanie lastIndexOf
i substring
:
var str = "foo/bar/test.html";
var n = str.lastIndexOf('/');
var result = str.substring(n + 1);
lastIndexOf
robi to, na co wygląda: znajduje indeks ostatniego wystąpienia znaku (cóż, łańcucha) w ciągu, zwracając -1, jeśli nie zostanie znaleziony. Dziewięć razy na dziesięć prawdopodobnie chcesz sprawdzić tę zwracaną wartość ( if (n !== -1)
), ale w powyższym, ponieważ dodajemy do niej 1 i wywołujemy podciąg, w końcu robimy, str.substring(0)
co po prostu zwraca ciąg.
Za pomocą Array#split
Sudhir i Tom Walters omawiają to tutaj i tutaj , ale tylko dla kompletności:
var parts = "foo/bar/test.html".split("/");
var result = parts[parts.length - 1]; // Or parts.pop();
split
dzieli ciąg przy użyciu podanego separatora, zwracając tablicę.
Rozwiązanie lastIndexOf
/ substring
jest prawdopodobnie najbardziej wydajne (chociaż zawsze należy uważać, mówiąc cokolwiek o JavaScript i wydajności, ponieważ silniki różnią się tak radykalnie od siebie), ale jeśli nie robisz tego tysiące razy w pętli, nie nie ma znaczenia i będę dążyć do przejrzystości kodu.
Nie potrzebujesz jQuery, a jest na to kilka sposobów, na przykład:
Gdzie myString zawiera Twój ciąg.
źródło
źródło
Próbować;
źródło
Kiedy wiem, że sznurek będzie w miarę krótki, używam następującej jednej wkładki ... (pamiętaj, aby uniknąć odwrotnych ukośników)
pojawi się alert z
picture name.jpg
źródło
Teraz masz last.htm w ciągu ścieżki.
źródło
lekka waga
gdzie
start = Required
. Miejsce rozpoczęcia ekstrakcji. Pierwszy znak znajduje się pod indeksem 0`.end = Optional
. Pozycja (do, ale nie włącznie), w której należy zakończyć ekstrakcję. Jeśli pominięty, wyodrębnia resztę ciągu.LUB
źródło
JQuery:
JavaScript:
Zastąp „_” || „/” do własnych potrzeb
źródło
oraz w przypadku pytania zadanego z adresu URL (zadanego przy jednokrotnym wystąpieniu „=”) ::
[ http://stackoverflow.com/questions/24156535/how-to-split-a-string-after-a-particular-character-in -jquery] [1]
źródło
Spróbuj tego:
źródło