JavaScript 문자열 자르기 (substring, substr, slice)

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)
    //결과 --> "트링"