str.split([separator[, limit]])
split 메서드는 String 객체를 지정한 구분자(separator)를 이용하여 여러개의 문자열로 나눌 수 있습니다.
이렇게 나뉜 문자열들은 배열에 담기게 됩니다.
const greeting = "안녕하세요, 반갑습니다."
const splitArray = greeting.split('')
console.log(splitArray)
// [ '안', '녕', '하', '세','요', ',', ' ', '반', '갑', '습', '니', '다', '.' ]
const splitArray = greeting.split(' ')
console.log(splitArray)
// [ '안녕하세요,', '반갑습니다.' ]
const splitArray = greeting.split()
console.log(splitArray)
// [ '안녕하세요, 반갑습니다.' ]
str.split('') : 구분자로 빈 문자열을 넣으면 문자열을 한 개씩 나눕니다.
str.split(' ') : 구분자로 공백을 넣으면 공백을 기준으로 문자열을 나눕니다.
str.split() : 구분자를 넣지 않으면 문자열이 그대로 배열로 변환됩니다.
# 구분자로 빈 문자열을 제공할 때 문자열에 이모지같은 특수 문자가 있는 경우에는 문자열을 한 개씩 나누는 데 문제가 생깁니다.
const specialCharacter = 'I💖U'
const splitArray = specialCharacter.split('')
console.log(splitArray)
// [ 'I', '�', '�', 'U' ]
이러한 경우에는 Spread 문법을 이용하면 간단하게 배열로 만들 수 있습니다.
// Spread Syntax
const specialCharacter = 'I💖U'
const splitArray = [...specialCharacter]
console.log(splitArray)
// [ 'I', '💖', 'U' ]
추가적으로 Array.from(), 정규표현식을 이용할 수도 있습니다.
// Array.from()
const specialCharacter = 'I💖U'
const splitArray = Array.from(specialCharacter)
console.log(splitArray)
// [ 'I', '💖', 'U' ]
// Regular Expression
const specialCharacter = 'I💖U';
const splitArray = specialCharacter.split(/(?=[\s\S])/u);
console.log(splitArray);
// [ 'I', '💖', 'U' ]
참고 자료
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/split
'개발 > JavaScript' 카테고리의 다른 글
[JavaScript] 블랙커피 Vanilla JS Lv1. 문벅스 카페 메뉴 앱 만들기 #2 (0) | 2022.09.07 |
---|---|
[JavaScript] 블랙커피 Vanilla JS Lv1. 문벅스 카페 메뉴 앱 만들기 #1 (0) | 2022.09.04 |
[JavaScript] 템플릿 리터럴(template literal)의 여러가지 용도 (0) | 2022.01.27 |
[JavaScript] eval()은 어디에 쓰일까? (0) | 2022.01.23 |
[JavaScript] ES2022 새로운 특징 (0) | 2022.01.03 |