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
Array.from('๐๐๐๐'); // ["๐", "๐", "๐", "๐"]
string.prototype.split() ์ RegExp u flag ์ฌ์ฉํ๊ธฐ
'๐๐๐๐'.split(/(?=[\s\S])/u); // ["๐", "๐", "๐", "๐"]
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
๊ณผ ๋ฌธ์์ด์ด ๋ ๋ค ๋น ๋ฌธ์์ด์ด๋ผ๋ฉด ๋น ๋ฐฐ์ด์ ๋ฐํํ๋ค.
const myString = '';
myString.split(); // [""]
myString.split(''); // []
๋ค์ ์์ ๋ ๋ฌธ์์ด์ ์ฃผ์ด์ง separator๋ก ๋๋ ํจ์๋ฅผ ์ ์ํ๋ค. ๋ฌธ์์ด์ ๋์ ๋ค์์๋ (๋๊ธฐ ์ด์ ์) ์๋ณธ ๋ฌธ์์ด๊ณผ ์ฌ์ฉํ separator, ๋ฐฐ์ด์ ๊ธธ์ด์ ์์๋ฅผ log๋ก ์ถ๋ ฅํ๋ค.
function splitString(stringToSplit, separator) {
const arrayOfStrings = stringToSplit.split(separator);
console.log('์๋ณธ ๋ฌธ์์ด: ', stringToSplit);
console.log('separator: ', separator);
console.log('array: ', arrayOfStrings.length, 'elements: ', arrayOfStrings.join(' / '))
}
const wikiString = 'A cat playing with a mouse.';
const monthString = 'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec';
const space = ' ';
const comma = ',';
splitString(wikiString, space);
splitString(wikiString);
splitString(monthString, comma);
log ํ์ธํ๊ธฐ
// splitString(wikiString, space);
์๋ณธ ๋ฌธ์์ด: A cat playing with a mouse.
separator:
array: 6 elements: A / cat / playing / with / a / mouse.
// splitString(wikiString);
์๋ณธ ๋ฌธ์์ด: A cat playing with a mouse.
separator: undefined
array: 1 elements: A cat playing with a mouse.
// splitString(monthString, comma);
์๋ณธ ๋ฌธ์์ด: Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec
separator: ,
array: 12 elements: Jan / Feb / Mar / Apr / May / Jun / Jul / Aug / Sep / Oct / Nov / Dec
๋ฌธ์์ด์ ๊ณต๋ฐฑ ์ ๊ฑฐํ๊ธฐ
๋ค์ ์์ ๋ split()
์ 0๊ฐ ์ด์์ ๊ณต๋ฐฑ์ ์ฐพ๊ณ , ๊ทธ ๋ค์์ด ์ธ๋ฏธ์ฝ๋ก ์ด๊ณ , ๊ทธ ๋ค์์ด 0๊ฐ ์ด์์ ๊ณต๋ฐฑ์ ์ฐพ์๋ด๊ณ , ์ฐพ์ผ๋ฉด ๋ฌธ์์ด์์ ๊ณต๋ฐฑ๊ณผ ์ธ๋ฏธ์ฝ๋ก ์ ์ ๊ฑฐํ๋ค. -> ์ธ๋ฏธ์ฝ๋ก ์ ์๋ค์ ๊ณต๋ฐฑ์ ์ฐพ๊ณ ๊ณต๋ฐฑ๊ณผ ์ธ๋ฏธ์ฝ๋ก ์ ์ ๊ฑฐํ๋ค.
const names = 'harry Trump ;Fred Barney; helen Rigby ; Bill Abel ; Chris Hand ';
console.log(names);
const re = /\s*(?:;|$)\s*/
const nameList = names.split(re); // harry Trump ;Fred Barney; helen Rigby ; Bill Abel ; Chris Hand
console.log(nameList); // ["harry Trump", "Fred Barney", "helen Rigby", "Bill Abel", "Chris Hand", ""]
์ ํ๋ ์์ ๋ถํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ
์ด ์์ ๋ split()
์ ๋ฌธ์์ด์์ ๊ณต๋ฐฑ์ ์ฐพ๊ณ , ๋ฐ๊ฒฌ๋ ์ต์ด์ 3๊ฐ์ ๋ถํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ค.
const myString = 'A cat playing with a mouse.';
myString.split(' ', 3); // ["A", "cat", "playing"]
RegExp๋ฅผ ์ฌ์ฉํด ๊ตฌ๋ถ์๋ ๊ฒฐ๊ณผ์ ํฌํจํ๊ธฐ
separator๊ฐ ์บก์ณ๋ง ๊ดํธ()
๋ฅผ ํฌํจํ๋ ์ ๊ทํํ์์ผ ๊ฒฝ์ฐ, ์บก์ณ๋ง๋ ๊ฒฐ๊ณผ๋ ๋ฐฐ์ด์ ํฌํจ๋๋ค.
const mySting = 'Hello 1 word. Sentence number 2.';
// ์บก์ณ๋ง์ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ
myString.split(/\d/); // ["Hello ", " word. Sentence number ", "."] ์ซ์ ๋ถ๋ถ์ ์ฐพ์๋ด ์ ๊ฑฐ๋๊ณ ๋ถํ ๋์๋ค.
// ์บก์ณ๋ง์ ์ฌ์ฉํ ๊ฒฝ์ฐ
myString.split(/(\d)/); // ["Hello ", "1", " word. Sentence number ", "2", "."] ์ซ์๋ถ๋ถ๋ ๊ฐ์ด ํฌํจ๋์๋ค.
\d
๋ character class์์ 0๋ถํฐ 9์ฌ์ด์ ์์ ์ผ์นํ๋ค.
split()์ผ๋ก ๋ฌธ์์ด ๋ค์ง๊ธฐ
const str = 'asdfghjk1';
str.split('').reverse().join(''); // "1kjhgfdsa"
// split()์์ ๋ฐํํ๋ ๋ฐฐ์ด์๋ reverse()์ join()์ ์ฌ์ฉํ ์ ์๋ค.
์ด ๋ฐฉ๋ฒ์ ๋ฌธ์์ด ๋ค์ง๊ธฐ์ ํจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ์ด ์๋๋ค.
๋ฌธ์์ด์ grapheme clusters๊ฐ ์์ ๊ฒฝ์ฐ, ์ ๋์ฝ๋ ํ๋๊ทธ๋ฅผ ์ค์ ํด๋ ์ค๋ฅ๋ฅผ ์ผ์ผํต๋๋ค.
(esrever ๋ฑ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋์ ์ฌ์ฉํ๋ผ)
const str = 'rรฉsumรฉ';
str.split(/(?:)/u).reverse().join(''); // "รฉmusรฉr"
===
๋ฅผ ์ฌ์ฉํ๋ฉด palindrome(์์์ ๋ถํฐ ์ฝ์ผ๋ ๋ค์์ ๋ถํฐ ์ฝ์ผ๋ ๋์ผํ ๋จ์ด)์ธ์ง ํ์ธํ ์ ์๋ค.
Last updated
Was this helpful?