JavaScript에서 문자열을 자르는 방법에 대해 살펴보겠습니다.
대표적으로 기본내장함수 substring, substr, slice 3가지가 있습니다.
3가지 중에서 상황에 맞게 적절하게 쓰면 좋겠습니다.
#substr
문법은 다음과 같습니다.
문자열(str)의 시작위치(startIndex)부터 길이(length)만큼의 글자수를 자릅니다.
(이때, 종료위치를 생략할 경우 시작위치부터 끝까지 자릅니다.)
// 문법
str.substr(startIndex, [length])
// 예시
"서브스트링".substr(2, 1)
//결과 --> "스"
"서브스트링".substr(2, 2)
//결과 --> "스트"
"서브스트링".substr(2, 3)
//결과 --> "스트링"
"서브스트링".substr(1)
//결과 --> "브스트링"
"서브스트링".substr(3)
//결과 --> "트링"
#substring
문법은 다음과 같습니다.
문자열(str)의 시작위치(startIndex)부터 종료위치(endIndex - 1)까지를 자릅니다.
(이때, 종료위치를 생략할 경우 시작위치부터 끝까지 자릅니다.)
// 문법
str.substring(startIndex, [endIndex])
// 예시
"서브스트링".substr(2, 3)
//결과 --> "스"
"서브스트링".substr(2, 4)
//결과 --> "스트"
"서브스트링".substr(2, 5)
//결과 --> "스트링"
"서브스트링".substr(1)
//결과 --> "브스트링"
"서브스트링".substr(3)
//결과 --> "트링"
주의사항
1. startIndex 또는 endIndex에 음수를 입력할 경우 해당 값은 0으로 인식됩니다.
"서브스트링".substring(-2, 3); // -2 --> 0으로 바뀐다
//결과 -> "서브스"
2. endIndex가 startIndex보다 작은 경우 startIndex와 endIndex가 서로 바뀝니다.
"서브스트링".substring(3, 0); // 0이 3보다 작음으로 두파라미터의 자리가 바뀜.
//결과 --> "서브스"
#slice
문법은 다음과 같습니다. (substring과 동일합니다)
문자열(str)의 시작위치(startIndex)부터 종료위치(endIndex - 1)까지를 자릅니다.
(이때, 종료위치를 생략할 경우 시작위치부터 끝까지 자릅니다.)
다만 slice함수에서 음수는 문자열의 마지막글자부터의 인덱스를 의미합니다.
('서브스트링'에서 -1: '링', -2: '트', -3: '스', -4: '브'...)
그래서 뒤에서 몇 글자 이런 식으로 가져올 때 사용하면 좋은 함수입니다.
// 문법
str.slice(startIndex, [endIndex])
// 예시
"서브스트링".slice(2, 3)
//결과 --> "스"
"서브스트링".slice(-3, -1)
//결과 --> "스트"
"서브스트링".slice(-3)
//결과 --> "스트링"
"서브스트링".slice(1)
//결과 --> "브스트링"
"서브스트링".slice(-2)
//결과 --> "트링"