string.split
split() ๋ฉ์๋๋ ๋ฌธ์์ด์ ์ ๋ ฌ๋ ํ์ ๋ฌธ์์ด ์งํฉ์ผ๋ก ๋๋๊ณ ์ด๋ฌํ ํ์ ๋ฌธ์์ด์ ๋ฐฐ์ด๋ก ๋ฃ์ ๋ค์ ๋ฐฐ์ด์ ๋ฐํํ๋ค. ๋ถํ ์ ํจํด์ ๊ฒ์ํ์ฌ ์ํํ๋ค. ์ฌ๊ธฐ์ ํจํด์ ๋ฉ์๋์ ํธ์ถ์์ ์ฒซ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ก ์ ๊ณต๋๋ค.
const str = 'A cat playing with a mouse.';
const words = str.split(' '); // ["A", "cat", "playing", "with", "a", "mouse."];
const strCopy = str.split(); // ["A cat playing with a mouse."]Syntax
str.split([separator[, limit]])Parameters
separator (Optional)
๊ฐ ๋ถํ ์ด ๋ฐ์ํ๋ ์์น๋ฅผ ๋ํ๋ด๋ ํจํด์ด๋ค. separator ๋ ๋จ์ํ ๋ฌธ์์ด์ด ๋ ์ ์๊ณ ์ ๊ทํํ์์ด ๋ ์ ์๋ค.
๊ฐ์ฅ ๊ฐ๋จํ ๊ฒฝ์ฐ๋
separator๊ฐ ๋จ์ผ ๋ฌธ์์ผ ๋ ์ด๋ค. ๊ตฌ๋ถ๋ ๋ฌธ์์ด์ ๋ถํ ํ๋๋ฐ ์ฌ์ฉ๋๋ค. ์๋ฅผ ๋ค์ด ํญ ๊ตฌ๋ถ ๊ฐ (TSV)์ ํฌํจํ๋ ๋ฌธ์์ด์ ๋ค์๊ณผ ๊ฐ์ด ํญ ๋ฌธ์๋ฅผ ๊ตฌ๋ถ ๊ธฐํธ๋ก ์ ๋ฌํ์ฌ ๊ตฌ๋ฌธ์ ๋ถ์ํ ์ ์๋ค.myString.split("\t")separator๊ฐ ๋๊ธ์ ์ด์์ผ ๊ฒฝ์ฐ, ๋ถํ ํ๋ ค๋ฉด ํด๋น ์ ์ฒด ๋ฌธ์์ ์ผ์นํ์ฌ์ผ ํ๋ค.separator๊ฐ ์๋ต๋๊ฑฐ๋ str์์ ์๋ ๋ฌธ์์ด์ผ ๊ฒฝ์ฐ, ์ ์ฒด ๋ฌธ์์ด๋ก ๊ตฌ์ฑ๋ ํ๋์ ์์๋ง์ด ์๋ ๋ฐฐ์ด์ ๋ฐํํ๋ค.separator๊ฐ ๋ฌธ์์ด์ ์์์ด๋ ๋์ง์ ์ผ๋ก ๋ํ๋๋ ์ฌ์ ํ ๋ถํ ์ ํจ๊ณผ๊ฐ ์๋ค. ๊ฒฐ๊ณผ๋ ๋ฐํ๋ ๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ ์์น(ํน์ ๋ง์ง๋ง)์๋ ๋น ๋ฌธ์์ด์ด๋ค.separator๊ฐ ๋น ๋ฌธ์์ด์ธ ๊ฒฝ์ฐ, str์ ๊ฐ๊ฐ์ UTF-16 ๋ฌธ์์ ๋ฐฐ์ด๋ก ๋ณํ๋๋ค.
์ฃผ์: separator๊ฐ ๋น ๋ฌธ์์ด("")๋ก ์ ๊ณต๋๋ฉด, ์ฌ์ฉ์๊ฐ ์ธ์ํ๋ ๋ฌธ์ ํ๋(grapheme cluster)๋๋ ์ ๋์ฝ๋ ๋ฌธ์(์ฝ๋ํฌ์ธํธ) ํ๋์ฉ์ผ๋ก ๋๋๋ ๊ฒ์ด ์๋๋ผ, UTF-16 ์ฝ๋ ์ ๋์ผ๋ก ๋๋๊ฒ ๋๋ฉฐ surrogate pair๊ฐ ๋ง๊ฐ์ง ์ ์๋ค. ์คํ ์ค๋ฒํ๋ก์ฐ์ How do you get a string to a character array in JavaScript? ๋ฅผ ์ฐธ๊ณ ํ์.
UTF-16 ์ฝ๋ ์ ๋์ด ์๋ ์ ๋์ฝ๋ ๋ฌธ์(์ฝ๋ํฌ์ธํธ) ํ๋์ฉ ๋๋๋ surrogate pair๊ฐ ๋ง๊ฐ์ง์ง ์๊ณ ๋ถํ ํ๋ ๋ฐฉ๋ฒ
Spread syntax ์ฌ์ฉ
Array.form
string.prototype.split() ์ RegExp u flag ์ฌ์ฉํ๊ธฐ
u flag๋ ์ ๋์ฝ๋; ํจํด์ ์ ๋์ฝ๋ ์ฝ๋ ํฌ์ธํธ์ ๋์ด๋ก ์ทจ๊ธํ๋ค.
/(?=.)/u๋์ ์/(?=[\s\S])/u๋ฅผ ์ฌ์ฉํ ์ด์.How to use JavaScript regex over multiple lines?
limit (Optional)
์์ด ์๋ ์ ์๋ก ๋๋ ์๋ฅผ ์ ํํ๋ค. ์ด ๋งค๊ฐ๋ณ์๊ฐ ์ ๊ณต๋๋ฉด separator ๊ฐ ๋ฑ์ฅํ ๋๋ง๋ค ๋ฌธ์์ด์ ๋์ง๋ง ๋ฐฐ์ด์ ์์๊ฐ limit๊ฐ๊ฐ ๋๋ฉด ๋ฉ์ถ๋ค. ๋จ์ ํ
์คํธ๋ ๋ฐฐ์ด์ ํฌํจ๋์ง ์๋๋ค.
limit์ ๋๋ฌํ๊ธฐ ์ ์ ๋ฌธ์์ด ๋์ ๋๋ฌํ๋ฉด ๋ฐฐ์ด์๋ ์ ํ๋ณด๋ค ์ ์ ๋ฏธ๋ง์ ์์๊ฐ ์์ ์๋ ์๋ค.๋ง์ฝ
limit๋1์ด๋ฉด[str]์ด ๋ฐํ๋๋ค.๋ง์ฝ
limit๋0์ด๋ฉด[]์ด ๋ฐํ๋๋ค.
Return value
๋ฌธ์์ด์ด ์์๋ก ์ด๋ฃจ์ด์ง Array๋ก, ์ฃผ์ด์ง ๋ฌธ์์ด์ด spearator ํฌ์ธํธ๋ก ๋ถํ ๋ ๊ฒ์ด๋ค.
Description
separator๊ฐ ๋ฐ๊ฒฌ๋์ ๋ ๋ฌธ์์ด์ ์ญ์ ๋๊ณ , ๋จ์ ๋ฌธ์์ด์ ๋ฐฐ์ด๋ก ๋ฐํ๋๋ค. ๋ง์ฝ separator ๊ฐ ํฌํ๊ดํธ(capturing parentheses)๋ฅผ ํฌํจํ๋ ์ ๊ท์์ผ ๊ฒฝ์ฐ, separator ๊ฐ ์ผ์นํ ๋ ๋ง๋ค ํฌํ ๊ดํธ์ (์ ์๋์ง ์์ ๊ฒฝ์ฐ๋ ํฌํจํ์ฌ) ๊ฒฐ๊ณผ๊ฐ ๋ฐฐ์ด์ ํด๋น ์์น์ ํฌํจ๋๋ค.
separator๊ฐ ๋ฐฐ์ด์ธ ๊ฒฝ์ฐ, ํด๋น ๋ฐฐ์ด์ ๋ฌธ์์ด๋ก ๊ฐ์ ๋ณํ๋์ด sperator๋ก ์ฌ์ฉ๋๋ค.
Examples
split() ์ฌ์ฉ
๋ฌธ์์ด์ด ๋น์์ ๋ split()๋ ํ๋์ ๋น ๋ฌธ์์ด์ ํฌํจํ ๋ฐฐ์ด์ ๋ฐํํ๋ค. (๋น ๋ฐฐ์ด์ด ์๋๋ค.) ๋ง์ฝ separator๊ณผ ๋ฌธ์์ด์ด ๋ ๋ค ๋น ๋ฌธ์์ด์ด๋ผ๋ฉด ๋น ๋ฐฐ์ด์ ๋ฐํํ๋ค.
๋ค์ ์์ ๋ ๋ฌธ์์ด์ ์ฃผ์ด์ง separator๋ก ๋๋ ํจ์๋ฅผ ์ ์ํ๋ค. ๋ฌธ์์ด์ ๋์ ๋ค์์๋ (๋๊ธฐ ์ด์ ์) ์๋ณธ ๋ฌธ์์ด๊ณผ ์ฌ์ฉํ separator, ๋ฐฐ์ด์ ๊ธธ์ด์ ์์๋ฅผ log๋ก ์ถ๋ ฅํ๋ค.
log ํ์ธํ๊ธฐ
๋ฌธ์์ด์ ๊ณต๋ฐฑ ์ ๊ฑฐํ๊ธฐ
๋ค์ ์์ ๋ split()์ 0๊ฐ ์ด์์ ๊ณต๋ฐฑ์ ์ฐพ๊ณ , ๊ทธ ๋ค์์ด ์ธ๋ฏธ์ฝ๋ก ์ด๊ณ , ๊ทธ ๋ค์์ด 0๊ฐ ์ด์์ ๊ณต๋ฐฑ์ ์ฐพ์๋ด๊ณ , ์ฐพ์ผ๋ฉด ๋ฌธ์์ด์์ ๊ณต๋ฐฑ๊ณผ ์ธ๋ฏธ์ฝ๋ก ์ ์ ๊ฑฐํ๋ค. -> ์ธ๋ฏธ์ฝ๋ก ์ ์๋ค์ ๊ณต๋ฐฑ์ ์ฐพ๊ณ ๊ณต๋ฐฑ๊ณผ ์ธ๋ฏธ์ฝ๋ก ์ ์ ๊ฑฐํ๋ค.
์ ํ๋ ์์ ๋ถํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ
์ด ์์ ๋ split()์ ๋ฌธ์์ด์์ ๊ณต๋ฐฑ์ ์ฐพ๊ณ , ๋ฐ๊ฒฌ๋ ์ต์ด์ 3๊ฐ์ ๋ถํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ค.
RegExp๋ฅผ ์ฌ์ฉํด ๊ตฌ๋ถ์๋ ๊ฒฐ๊ณผ์ ํฌํจํ๊ธฐ
separator๊ฐ ์บก์ณ๋ง ๊ดํธ() ๋ฅผ ํฌํจํ๋ ์ ๊ทํํ์์ผ ๊ฒฝ์ฐ, ์บก์ณ๋ง๋ ๊ฒฐ๊ณผ๋ ๋ฐฐ์ด์ ํฌํจ๋๋ค.
\d ๋ character class์์ 0๋ถํฐ 9์ฌ์ด์ ์์ ์ผ์นํ๋ค.
split()์ผ๋ก ๋ฌธ์์ด ๋ค์ง๊ธฐ
์ด ๋ฐฉ๋ฒ์ ๋ฌธ์์ด ๋ค์ง๊ธฐ์ ํจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ์ด ์๋๋ค.
๋ฌธ์์ด์ grapheme clusters๊ฐ ์์ ๊ฒฝ์ฐ, ์ ๋์ฝ๋ ํ๋๊ทธ๋ฅผ ์ค์ ํด๋ ์ค๋ฅ๋ฅผ ์ผ์ผํต๋๋ค.
(esrever ๋ฑ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋์ ์ฌ์ฉํ๋ผ)
=== ๋ฅผ ์ฌ์ฉํ๋ฉด palindrome(์์์ ๋ถํฐ ์ฝ์ผ๋ ๋ค์์ ๋ถํฐ ์ฝ์ผ๋ ๋์ผํ ๋จ์ด)์ธ์ง ํ์ธํ ์ ์๋ค.
Last updated
Was this helpful?