String. prototype. split()
Dzieli napis na tablicę fragmentów według separatora: znaku, tekstu lub wyrażenia regularnego.
- Zwraca
- Nową tablicę napisów.
- Zmienia oryginał
- Nie
Przykład
#const tags = 'html,css,javascript'
const sentence = 'Uczę się kodować codziennie'
console.log(tags.split(','))
console.log(sentence.split(' '))
console.log(tags.split(',', 2))Definicja i zastosowanie
#Metoda split() szuka w napisie separatora i tnie tekst w miejscach, gdzie go znajdzie. Fragmenty trafiają do nowej tablicy, a sam separator znika. To podstawowy sposób na zamianę tekstu, np. listy tagów po przecinku albo zdania, na tablicę, którą łatwo przetworzyć metodami tablic.
Separatorem może być napis albo wyrażenie regularne, np. /\s+/ dla dowolnej liczby spacji. Pusty napis "" dzieli tekst na pojedyncze jednostki UTF-16, co psuje emoji, więc do rozbicia na znaki lepiej użyć [...text]. Bez separatora dostajesz tablicę z całym napisem jako jedynym elementem.
Drugi argument limit ogranicza liczbę elementów wyniku. Gdy separator stoi na początku, na końcu lub dwa razy obok siebie, w tablicy pojawią się puste napisy. Odwrotną operacją jest join() na tablicy.
Składnia
#string.split(separator)
string.split(separator, limit)Parametry
#separator
string | RegExp, opcjonalny
Tekst lub wyrażenie regularne wskazujące miejsca podziału. Pominięty daje tablicę z jednym elementem: całym napisem.limit
number, opcjonalny
Maksymalna liczba elementów w wyniku. Dalsza część tekstu jest pomijana.
Więcej przykładów
#const input = ' React, Vue ,Angular '
const frameworks = input
.split(',')
.map((name) => name.trim())
console.log(frameworks)
console.log('jeden dwa trzy'.split(/\s+/))console.log('a,,b,'.split(','))
console.log('kod'.split(''))
console.log('Hej👋'.split('').length, [...'Hej👋'].length)Puste napisy powstają między dwoma przecinkami i za ostatnim. split("") rozcina emoji na dwie połówki, dlatego do rozbicia tekstu na znaki bezpieczniej użyć [...text].
const row = 'Ania;120;JavaScript'
const [name, points, course] = row.split(';')
console.log(name, Number(points) + 30, course)
const lines = 'linia 1\nlinia 2\nlinia 3'.split('\n')
console.log(lines.length)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
#- Po
split()często przydaje sięmap((part) => part.trim()), bo dane wpisywane przez ludzi mają przypadkowe spacje. - Liczby po podziale wciąż są napisami. Zamień je przez
Number()przed obliczeniami, inaczej"120" + 30da"12030". - Do dzielenia na znaki używaj
[...text]alboArray.from(text).split("")rozbija emoji na niepoprawne połówki.
Powiązane hasła
#- Array.prototype.join()Łączy elementy tablicy w jeden napis z wybranym separatorem.
- String.prototype.slice()Zwraca fragment napisu od indeksu początkowego do końcowego (bez niego). Obsługuje indeksy ujemne.
- String.prototype.trim()Usuwa białe znaki z obu końców napisu: spacje, tabulatory i znaki nowej linii.
- String.prototype.match()Dopasowuje napis do wyrażenia regularnego. Zwraca tablicę z dopasowaniem lub wszystkimi dopasowaniami albo null.
- RegExpWyrażenie regularne, czyli wzorzec do wyszukiwania, sprawdzania i zamiany fragmentów tekstu.
- DestrukturyzacjaDestrukturyzacja (destructuring) wyciąga wartości z tablic i obiektów prosto do osobnych zmiennych.
Widzisz błąd albo brakuje przykładu? Napisz do nas.