Uwaga: jeśli się spieszysz i / lub szukasz krótkiej odpowiedzi, przewiń na dół odpowiedzi i przeczytaj ostatnie dwa wiersze. Jeśli nie spieszysz się, przeczytaj całość.
zacznę od podania faktów:
Składnia:
string.slice(start,end)
string.substr(start,length)
string.substring(start,end)
Uwaga 1:slice()==substring()
Co to robi?
W slice()
części ekstrakty Sposób struny i wraca wyodrębnione części w nowym tekstem.
W substr()
części ekstrakty metoda łańcucha znaków, począwszy od znaku w określonym położeniu i zwraca określoną liczbę znaków.
W substring()
części ekstrakty Sposób struny i wraca wyodrębnione części w nowym tekstem.
Uwaga 2:slice()==substring()
Zmienia oryginalny ciąg?
slice()
Nie
substr()
robi nie
substring()
zauważa
nr 3:slice()==substring()
Używanie liczb ujemnych jako argumentu:
slice()
wybiera znaki zaczynające się od końca ciągu
substr()
wybiera znaki rozpoczynające się od końca ciągu
substring()
Nie wykonuje uwagi
3:slice()==substr()
jeśli pierwszy argument jest większy niż drugi:
slice()
nie działa,
substr()
ponieważ drugi argument NIE jest pozycją, ale wartością długości, będzie działał jak zwykle, bez problemów
substring()
zamieni oba argumenty i będzie działał jak zwykle
Pierwszy argument:
slice()
Wymagany, wskazuje:
substr()
Wymagany indeks początkowy, Wskazuje:
substring()
Wymagany indeks początkowy, Wskazuje: Indeks początkowy
Uwaga 4:slice()==substr()==substring()
drugi argument:
slice()
Opcjonalny, Pozycja (do, ale nie wliczając), gdzie zakończyć rozpakowanie
substr()
Opcjonalnie, Liczba znaków do wypakowania
substring()
Opcjonalnie, Pozycja (do, ale bez uwzględnienia), gdzie zakończyć rozpakowywanie
Uwaga # 5:slice()==substring()
Co się stanie, jeśli drugi argument zostanie pominięty?
slice()
wybiera wszystkie znaki od pozycji początkowej do końca ciągu
substr()
wybiera wszystkie znaki od pozycji początkowej do końca ciągu
substring()
wybiera wszystkie znaki od pozycji początkowej do końca ciągu
Uwaga # 6:slice()==substr()==substring()
więc możesz powiedzieć, że istnieje różnica między slice()
i substr()
, podczas gdy substring()
jest w zasadzie kopią slice()
.
Podsumowując:
jeśli znasz indeks (pozycję), na którym się zatrzymasz (ale NIE obejmuje), użyj, slice()
jeśli znasz długość znaków do wyodrębnienia, użyj substr()
.
slice
jest tym, którego zachowanie jest najmniej nieoczekiwane.