녕지의 개발 블로그
Published 2024. 3. 8. 14:10
substr() vs substring() Language/js

substr()과 substring() 둘 다 문자열의 일부를 잘라내는 기능을 수행하지만 사용 방법과 동작 방식에서 차이가 있다

substr()

substr() 함수는 문자열의 일부를 일정 길이만큼 추출하고 싶을 때 사용한다

"문자열".substr(startIndex, length);
// 첫 번째 인자: 시작 인덱스
// 두 번째 인자: 잘라낼 길이

// 예시
"ABCDEFG".substr(2, 3);  // CDE
// 인덱스는 0부터 시작하기 때문에 C부터 세 글자가 추출된다

"ABCDEFG".substr(2); // CDEFG
// 두 번째 인자를 생략하면 문자열 끝까지 추출된다

"ABCDEFG".substr(-5, 3) // CDE
// -1은 끝에서 첫 번째 문자
// -n이 끝에서 n번째 문자

substring()

substring() 함수는 문자열을 시작과 종료 인덱스를 기준으로 자르고 싶을 때 사용한다

두 번째 인자로 문자열 길이 대신 종료 인덱스를 받는다는 점이 substr()과 큰 차이다

"문자열".substring(startIndex, endIndex);
// 첫 번째 인자: 시작 인덱스
// 두 번째 인자: 종료 인덱스
// 시작 인덱스만 결과에 포함되고, 종료 인덱스는 제외된다

// 예시
"ABCDEFG".substring(2, 5); // CDE

"ABCDEFG".substring(2); // CDEFG
// substr()와 마찬가지로 첫 번째 인자로 넘긴 인덱스부터 문자열 끝까지 추출된다

substr() vs substring()

시작 인덱스와 길이를 기준으로 자르는 substr()와 시작과 종료 인덱스를 기준으로 자르는 substring()는 비슷한 목적을 가지고 있지만 지금까지 살펴본 것처럼 사용 방법과 동작 방식에서 차이가 있어서 주의가 필요하다

그렇지만 substr() 함수는 자바 스크립트에서 deprecated, 폐기된 함수이다 MDN 관련 레퍼런스를 보면 이제 쓰지 말라고 경고하고 있다

그러므로 substr()를 사용한 코드는 substring()를 쓰도록 리팩토링 하는 게 좋을 것 같다

 

출처

https://www.daleseo.com/js-substr-substring/

profile

녕지의 개발 블로그

@녕지

주니어 개발자가 쓰는 IT에서 살아남기 . . .