This page was translated from English by the community.Learn more and join the MDN Web Docs community.
String.prototype.substr()
지원이 중단되었습니다: 이 기능은 더 이상 권장되지 않습니다. 일부 브라우저에서는 아직 지원할 수 있지만 관련 웹 표준에서 이미 제거되었거나 제거 과정에 있는 경우가 있으며, 호환성을 위해 유지되고 있을 수 있습니다. 사용을 피하고 가능하다면 기존 코드를 업데이트하세요. 결정을 지원할하단의 호환성 표를 확인하세요. 이 기능은 언제든지 작동을 중단할 수 있음을 유의하세요.
String 값의substr() 메서드는 지정된 인덱스에서 시작하여 그 다음에 지정된 문자 수만큼 확장되는 이 문자열의 일부를 반환합니다.
참고 :substr()은 기본 ECMAScript 명세의 일부가 아니며, 비브라우저 런타임에 대한 권장 선택 사항인부록 B: 웹 브라우저용 추가 ECMAScript 기능에 정의되어 있습니다. 그러므로 코드를 최대한 크로스 플랫폼 친화적으로 만들려면 표준String.prototype.substring() 그리고String.prototype.slice() 메서드를 대신 사용을 권장합니다.String.prototype.substring() 페이지에는 세 가지 메서드 간의 비교가 나와 있습니다.
In this article
시도해 보기
const str = "Mozilla";console.log(str.substr(1, 2));// Expected output: "oz"console.log(str.substr(2));// Expected output: "zilla"구문
substr(start)substr(start, length)매개변수
start반환된 부분 문자열에 포함할 첫 번째 문자의 인덱스입니다.
lengthOptional추출할 문자 수입니다.
반환 값
주어진 문자열의 지정된 부분을 포함하는 새 문자열입니다.
설명
문자열의substr() 메서드는start 인덱스부터length 만큼의 문자를 추출합니다.
start >= str.length이면 빈 문자열이 반환됩니다.start < 0이면 인덱스는 문자열의 끝부터 카운트를 시작합니다. 보다 공식적으로는 이 경우 하위 문자열은max(start + str.length, 0)에서 시작합니다.start가 생략되거나undefined가 있으면start는0으로 처리됩니다.length가 생략되거나undefined인 경우 혹은start + length >= str.length인 경우substr()은 문자열의 끝 부분까지 문자를 추출합니다.length < 0이면 빈 문자열이 반환됩니다.start와length모두에 대해NaN는0으로 처리됩니다.
substr() 사용을 피하는 것이 좋지만, 기본적으로substr()에 대한 폴리필을 작성하지 않고도 레거시 코드에서substr()을slice() 또는substring()으로 마이그레이션하는 간단한 방법은 없습니다. 예를 들어,str = "01234", a = 1, l = -2인 경우str.substr(a, l),str.slice(a, a + l),str.substring(a, a + l)는 모두 다른 결과를 반환하지만,substr()는 빈 문자열을 반환하고slice()는"123"을 반환하지만substring()는"0"을 반환합니다. 실제 리팩토링 방법은a와l의 범위에 대한 지식에 따라 달라집니다.
예제
>substr() 사용하기
const aString = "Mozilla";console.log(aString.substr(0, 1)); // 'M'console.log(aString.substr(1, 0)); // ''console.log(aString.substr(-1, 1)); // 'a'console.log(aString.substr(1, -1)); // ''console.log(aString.substr(-3)); // 'lla'console.log(aString.substr(1)); // 'ozilla'console.log(aString.substr(-20, 2)); // 'Mo'console.log(aString.substr(20, 2)); // ''명세서
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-string.prototype.substr> |