String.prototype.substring()
BaselineWidely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
substring()
메소드는 string 객체의 시작 인덱스로 부터 종료 인덱스 전 까지 문자열의 부분 문자열을 반환합니다.
시도해 보기
const str = "Mozilla";console.log(str.substring(1, 3));// Expected output: "oz"console.log(str.substring(2));// Expected output: "zilla"
사용방법
str.substring(indexStart[, indexEnd])
인자값
indexStart
반환문자열의 시작 인덱스
indexEnd
옵션. 반환문자열의 마지막 인덱스 (포함하지 않음.)
반환값
기존문자열의 부분 문자열을 반환합니다.
Description
substring()
메서드는indexStart
부터 문자를 추출하지만indexEnd
가 포함되지 않아도 괜찮습니다. 특징은 아래와 같습니다.
- 만약
indexEnd
가 생략된 경우,substring()
문자열의 끝까지 모든 문자를 추출합니다. - 만약
indexStart
가indexEnd
와 같을 경우,substring()
빈 문자열을 반환합니다. - 만약
indexStart
가indexEnd
보다 큰 경우,substring()
메서드는 마치 두 개의 인자를 바꾼 듯 작동하게 됩니다. 아래 예제를 보세요.
0보다 작은 인자 값을 가지는 경우에는 0으로,stringName.length
보다 큰 인자 값을 가지는 경우,stringName.length
로 처리됩니다.NaN
값은 0으로 처리됩니다.
Examples
Usingsubstring()
The following example usessubstring()
to display characters from the string'Mozilla'
:
var anyString = "Mozilla";// Displays 'M'console.log(anyString.substring(0, 1));console.log(anyString.substring(1, 0));// Displays 'Mozill'console.log(anyString.substring(0, 6));// Displays 'lla'console.log(anyString.substring(4));console.log(anyString.substring(4, 7));console.log(anyString.substring(7, 4));// Displays 'Mozilla'console.log(anyString.substring(0, 7));console.log(anyString.substring(0, 10));
Usingsubstring()
withlength
property
The following example uses thesubstring()
method andlength
property to extract the last characters of a particular string. This method may be easier to remember, given that you don't need to know the starting and ending indices as you would in the above examples.
// Displays 'illa' the last 4 charactersvar anyString = "Mozilla";var anyString4 = anyString.substring(anyString.length - 4);console.log(anyString4);// Displays 'zilla' the last 5 charactersvar anyString = "Mozilla";var anyString5 = anyString.substring(anyString.length - 5);console.log(anyString5);
The difference betweensubstring()
andsubstr()
There's a subtle difference between thesubstring()
andsubstr()
methods, so you should be careful not to get them confused.
The arguments ofsubstring()
represent the starting and ending indexes, while the arguments ofsubstr()
represent the starting index and the number of characters to include in the returned string.
var text = "Mozilla";console.log(text.substring(2, 5)); // => "zil"console.log(text.substr(2, 3)); // => "zil"
Differences betweensubstring()
andslice()
Thesubstring()
andslice()
methods are almost identical, but there are a couple of subtle differences between the two, especially in the way negative arguments are dealt with.
Thesubstring()
method swaps its two arguments ifindexStart
is greater thanindexEnd
, meaning that a string is still returned. Theslice()
method returns an empty string if this is the case.
var text = "Mozilla";console.log(text.substring(5, 2)); // => "zil"console.log(text.slice(5, 2)); // => ""
If either or both of the arguments are negative orNaN
, thesubstring()
method treats them as if they were0
.
console.log(text.substring(-5, 2)); // => "Mo"console.log(text.substring(-5, -2)); // => ""
slice()
also treatsNaN
arguments as0
, but when it is given negative values it counts backwards from the end of the string to find the indexes.
console.log(text.slice(-5, 2)); // => ""console.log(text.slice(-5, -2)); // => "zil"
See theslice()
page for more examples with negative numbers.
Replacing a substring within a string
The following example replaces a substring within a string. It will replace both individual characters and substrings. The function call at the end of the example changes the stringBrave New World
toBrave New Web
.
// Replaces oldS with newS in the string fullSfunction replaceString(oldS, newS, fullS) { for (var i = 0; i < fullS.length; ++i) { if (fullS.substring(i, i + oldS.length) == oldS) { fullS = fullS.substring(0, i) + newS + fullS.substring(i + oldS.length, fullS.length); } } return fullS;}replaceString("World", "Web", "Brave New World");
Note that this can result in an infinite loop ifoldS
is itself a substring ofnewS
— for example, if you attempted to replace 'World' with 'OtherWorld' here. A better method for replacing strings is as follows:
function replaceString(oldS, newS, fullS) { return fullS.split(oldS).join(newS);}
The code above serves as an example for substring operations. If you need to replace substrings, most of the time you will want to useString.prototype.replace()
.
명세서
Specification |
---|
ECMAScript® 2026 Language Specification # sec-string.prototype.substring |