String. prototype. substring()
Zwraca fragment napisu między dwoma indeksami. Ujemne wartości zamienia na 0, a odwrócone indeksy zamienia miejscami.
- Zwraca
- Nowy napis z fragmentem oryginału.
- Zmienia oryginał
- Nie
Przykład
#const lesson = 'Lekcja 7: Pętle'
console.log(lesson.substring(0, 6))
console.log(lesson.substring(10))Definicja i zastosowanie
#Metoda substring() zwraca część napisu od indeksu indexStart do indexEnd, bez znaku spod indexEnd. Przy dodatnich argumentach podanych w dobrej kolejności działa dokładnie tak jak slice().
Różnice pojawiają się przy nietypowych argumentach. Wartości ujemne i NaN są traktowane jak 0, więc substring(-3) zwraca cały napis, a nie trzy ostatnie znaki. Gdy indexStart jest większy od indexEnd, metoda po cichu zamienia je miejscami.
Przez te niejawne poprawki łatwiej o trudne do wykrycia błędy, dlatego w nowym kodzie zwykle wybiera się slice(). substring() warto jednak znać, bo często pojawia się w starszym kodzie. Nie myl jej z przestarzałą metodą substr(), która jako drugi argument przyjmuje długość.
Składnia
#string.substring(indexStart)
string.substring(indexStart, indexEnd)Parametry
#indexStart
number
Indeks pierwszego znaku wyniku. Wartości ujemne iNaNsą zamieniane na0.indexEnd
number, opcjonalny
Indeks, przed którym wynik się kończy. Domyślnie długość napisu. Jeśli jest mniejszy odindexStart, argumenty zostaną zamienione miejscami.
Więcej przykładów
#const text = 'Programowanie'
console.log(text.substring(-4))
console.log(text.slice(-4))
console.log(text.substring(7, 3))
console.log(text.slice(7, 3).length)const message = 'Gratulacje [Ania], ukończono moduł!'
const start = message.indexOf('[') + 1
const end = message.indexOf(']')
console.log(message.substring(start, end))Obsługa przeglądarek
#Szeroko dostępne
Działa we wszystkich nowoczesnych przeglądarkach, także na telefonach. Możesz używać bez obaw.
- Chrome
- Edge
- Firefox
- Safari
Dobre praktyki
#- W nowym kodzie wybieraj
slice(). Obsługuje indeksy ujemne i nie zamienia argumentów po cichu, więc błędy łatwiej zauważyć. - Unikaj przestarzałej metody
substr(start, length). Jej drugi argument oznacza długość, a nie indeks końcowy, co łatwo pomylić.
Powiązane hasła
#- String.prototype.slice()Zwraca fragment napisu od indeksu początkowego do końcowego (bez niego). Obsługuje indeksy ujemne.
- String.prototype.indexOf()Zwraca indeks pierwszego wystąpienia podanego tekstu w napisie albo -1, gdy go nie ma.
- String.prototype.split()Dzieli napis na tablicę fragmentów według separatora: znaku, tekstu lub wyrażenia regularnego.
- String.prototype.at()Zwraca znak spod podanego indeksu. Ujemne indeksy liczą się od końca, więc at(-1) to ostatni znak.
Widzisz błąd albo brakuje przykładu? Napisz do nas.