substr 
๐ก substr์ ์๋ก์ด ์น์ฌ์ดํธ์์๋ ๋์ด์ ์ฌ์ฉ๋์ง ์๋๋ค. ์น ํ์ค์์ ์ ๊ฑฐ๋ ๊ฒ์ ์๋์ง๋ง ๋ค๋ฅธ ๋งค์๋๋ก ๋์ฒดํ๋ ๊ฒ์ด ๋ฐ๋์งํ๋ค.
 
๋ฌธ์์ด์์ ํน์  ์์น์์ ์์ํ์ฌ ํน์  ๋ฌธ์ ์ ๋งํผ์ ๋ฌธ์๋ค์ ๋ฐํํ๋ค.
1 2 3 4 5 6 7 const  str = 'hello' console .log(str.substr(1 , 2 ))console .log(str.substr(2 ))
 
str.substr(start[, length]) str.substr(์์์์น์ ์ธ๋ฑ์ค, ์ถ์ถํ ๋ฌธ์์ length )
 
start ๊ฐ์ด ์์์ด๊ณ , ๋ฌธ์์ด ์ ์ฒด ๊ธธ์ด๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ผ๋ฉด ๋น ๋ฌธ์์ด์ ๋ฐํํ๋ค. 
start๊ฐ ์์์ด๋ฉด ๋ฌธ์์ด ๋์์ start ์ซ์๋งํผ ๋บ ๊ณณ์์ ์์ํ๋ค. 
start๊ฐ ์์์ด๊ณ , ์ ๋๊ฐ์ด ๋ฌธ์์ด ์ ์ฒด๋ณด๋ค ํฌ๋ฉด ๋ฌธ์์ด์ 0๋ฒ์งธ ์ธ๋ฑ์ค๋ถํฐ ์์ 
length๊ฐ 0 ์ด๊ฑฐ๋ ์์์ด๋ฉด ๋น ๋ฌธ์์ด ๋ฐํํ๋ค. 
length๊ฐ ์๋ต๋์๋ค๋ฉด ๋ฌธ์์ด์ ๋๊น์ง ์ถ์ถํ์ฌ ๋ฐํํ๋ค. 
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 const  str = 'helloworld' str.substr(1 , 2 ) str.substr(-3 , 2 ) str.substr(-3 ) str.substr(1 ) str.substr(-20 , 2 ) str.substr(20 , 2 ) 
 
 
substring ์์ ์ธ๋ฑ์ค๋ก ๋ถํฐ ์ข
๋ฃ ์ธ๋ฑ์ค ์  ๊น์ง ๋ฌธ์์ด์ ๋ถ๋ถ ๋ฌธ์์ด์ ๋ฐํ
1 2 3 4 5 6 7 const  str = 'hello' console .log(str.substr(1 , 3 ))console .log(str.substr(2 ))
 
str.substring(indexStart[, indexEnd]) str.substring(์์ ์ธ๋ฑ์ค, ๋ง์ง๋ง ์ธ๋ฑ์ค(ํฌํจํ์ง ์์)) return ๊ฐ: ๊ธฐ์กด๋ฌธ์์ด์ ๋ถ๋ถ ๋ฌธ์์ด
 
์์ ์ธ๋ฑ์ค๋ถํฐ ๋ฌธ์๋ฅผ ์ถ์ถํ์ฌ ๋ง์ง๋ง ์ธ๋ฑ์ค๊ฐ ํฌํจ๋์ง ์์๋ ๋๋ค.  
indexEnd๊ฐ ์๋ต๋์๋ค๋ฉด ๋ฌธ์์ด ๋๊น์ง ๋ชจ๋  ๋ฌธ์๋ฅผ ์ถ์ถํ๋ค. 
indexStart, indexEnd๊ฐ ๊ฐ์ ๊ฒฝ์ฐ ๋น ๋ฌธ์์ด์ ๋ฐํํ๋ค. 
indexStart๊ฐ indexEnd๋ณด๋ค ํด ๊ฒฝ์ฐ ๋ ๊ฐ์ ์ธ์๋ฅผ ๋ฐ๊พผ ๊ฒ์ฒ๋ผ ์๋ํ๋ค. 
0๋ณด๋ค ์์ ์ธ์ ๊ฐ์ ๊ฐ์ง๋ฉด 0, stringName.length๋ณด๋ค ํฐ ์ธ์๊ฐ์ ๊ฐ์ง๋ฉด stringName.length๋ก ์ฒ๋ฆฌ๋๋ค. 
NaN ๊ฐ์ 0์ผ๋ก ์ฒ๋ฆฌ๋๋ค. 
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 const  anyString = 'helloworld' console .log(anyString.substring(0 , 1 ))console .log(anyString.substring(1 , 0 ))console .log(anyString.substring(0 , 6 ))console .log(anyString.substring(5 ))console .log(anyString.substring(4 , 7 ))console .log(anyString.substring(7 , 4 ))console .log(anyString.substring(0 , 10 ))console .log(anyString.substring(0 , 15 ))
 
substring()์ length ์์ฑ์ ๊ฐ์ด ์ฌ์ฉํ๊ธฐ 1 2 3 4 5 6 7 8 9 const  anyString = 'helloworld' const  anyString4 = anyString.substring(anyString.length - 4 )console .log(anyString4)const  anyString = 'helloworld' const  anyString5 = anyString.substring(anyString.length - 5 )console .log(anyString5)
 
substring ๋ฉ์๋์ length ์ก์ฑ์ ์ฌ์ฉํ์ฌ ํน์  ๋ฌธ์์ด์ ๋ง์ง๋ง ๋ฌธ์๋ฅผ ์ถ์ถํ  ์ ์๋ค. ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด anyString.substring(4, 7)๊ณผ ๊ฐ์ด ์์์ธ๋ฑ์ค์ ๋ง์ง๋ง์ธ๋ฑ์ค๋ฅผ ์์ง ์์๋ ๋๋ค.
substring()์ substr()์ ์ฐจ์ด์  substring()์ substr()์๋ ๋ฏธ๋ฌํ ์ฐจ์ด๊ฐ ์์ผ๋ฏ๋ก ์ฃผ์ํด์ผ ํ๋ค.  substring()์ ์์๊ณผ ๋ง์ง๋ง ์ธ๋ฑ์ค๋ฅผ ์๋ฏธํ๋๋ฐ, substr()์ ์์์ธ๋ฑ์ค์ ๋ฐํ๋ ๋ฌธ์์ด์ ํฌํจํ  ๋ฌธ์ ์๋ฅผ ๋ํ๋ธ๋ค.
str.substring(indexStart[, indexEnd]) 
str.substr(start[, length]) 
 
1 2 3 4 5 const  text = 'helloworld' console .log(text.substring(2 , 5 )) console .log(text.substr(2 , 3 )) 
 
substring()์ slice()์ ์ฐจ์ด์  substring()์ slice()๋ ๊ฑฐ์ ๋๊ฐ์๋ฐ, ๋ฏธ๋ฌํ๊ฒ ๋ค๋ฅธ ์ ์ด ์กด์ฌํ๋ค. ํนํ ๋ถ์ ์ ์ธ ์ธ์๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ์ฐจ์ด๊ฐ ์๋ค. 
substring(): indexStart๊ฐ indexEnd๋ณด๋ค ํด ๊ฒฝ์ฐ ๋ ๊ฐ์ง ์ธ์๋ฅผ ๋ฐ๊พผ๋ฏ์ด ์๋ํ๋ค.  
slice(): indexStart๊ฐ indexEnd๋ณด๋ค ํด ๊ฒฝ์ฐ ๋น ๋ฌธ์์ด์ ๋ฐํํ๋ค.  
 
1 2 3 4 5 const  text = 'helloworld' console .log(text.substring(5 , 2 )) console .log(text.slice(5 , 2 )) 
 
๋ ๊ฐ์ง ์ธ์ ๋ชจ๋ ์์๊ฑฐ๋ NaN์ธ ๊ฒฝ์ฐ, substring()
substring(): ๋ ๊ฐ์ง ์ธ์ ๋ชจ๋ ์์๊ฑฐ๋ NaN์ธ ๊ฒฝ์ฐ ์ธ์๊ฐ 0์ธ ๊ฒ์ฒ๋ผ ์ฒ๋ฆฌํ๋ค.  
 
1 2 3 4 console .log(text.substring(-5 , 2 )) console .log(text.substring(-5 , -2 )) 
 
slice(): ๋ ๊ฐ์ง ์ธ์ ๋ชจ๋ ์์๊ฑฐ๋ NaN์ธ ๊ฒฝ์ฐ NaN์ธ์๋ 0์ฒ๋ผ ์ทจ๊ธํ์ง๋ง, ์์์ผ ๋๋ ๋ฌธ์์ด ๋์์ ์ญ๋ฐฉํฅ์ผ๋ก ๊ณ์ฐํ๋ค.  
 
1 2 3 4 5 6 7 console .log(text.slice(-5 , 2 )) console .log(text.slice(-5 , -2 )) 
 
 
slice ๋ฌธ์์ด์ ์ผ๋ถ๋ฅผ ์ถ์ถํ๋ฉด์ ์๋ก์ด ๋ฌธ์์ด์ ๋ฐํํ๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ๋ฌธ์์ด์ ์ํฅ์ ๋ฏธ์น์ง ์์ผ๋ฉฐ, ๋ง์ง๋ง ์ธ๋ฑ์ค ์ง์ ๊น์ง ์ถ์ถํ๋ค.
1 2 3 4 5 6 7 8 9 10 11 12 13 const  str = 'The quick brown fox jumps over the lazy dog.' console .log(str.slice(31 ))console .log(str.slice(4 , 19 ))console .log(str.slice(-4 ))console .log(str.slice(-9 , -5 ))
 
str.slice(beginIndex[, endIndex]) str.slice(์ถ์ถ์์์  ์ธ๋ฑ์ค[, ์ข
๋ฃ์ธ๋ฑ์ค, ์ฃผ์ด์ง ์ธ๋ฑ์ค ์ง์ ๊น์ง ์ถ์ถ]) return ๊ฐ : ์ถ์ถ๋ ๋ถ๋ถ์ ๋ด๋ ์๋ก์ด ๋ฌธ์์ด
 
beginIndex
์์๊ฐ ์ฌ ๊ฒฝ์ฐ, strLength(๋ฌธ์์ด ๊ธธ์ด) + beginIndex๋ก ์ทจ๊ธ (e.g. beginIndex๊ฐ -3์ด๋ฉด ์์์ ์ strLength -3) 
beginIndex๊ฐ strLength๋ณด๋ค ํฌ๋ฉด ๋น ๋ฌธ์์ด ๋ฐํ  
 
 
endIndex
์ถ์ถ ์ข
๋ฃ์  ์ธ๋ฑ์ค ์์น์ ๋ฌธ์๋ ์ถ์ถ์ ํฌํจ๋์ง ์๊ณ , ๊ทธ ์ง์ ๊น์ง ์ถ์ถ๋๋ค.  
endIndex๊ฐ ์๋ต๋์๋ค๋ฉด ๋ฌธ์์ด ๋ง์ง๋ง๊น์ง ์ถ์ถํ๋ค. 
์์๋ผ๋ฉด endIndex๋ strLength + endIndex๋ก ์ทจ๊ธ๋๋ค. (e.g. endInedx๊ฐ -3์ด๋ฉด ์ข
๋ฃ์ ์ strLength -3) 
 
 
 
1 2 3 4 5 6 7 8 9 10 11 12 13 const  str1 = 'The morning is upon us.' ,   str2 = str1.slice(1 , 8 ),   str3 = str1.slice(4 , -2 ),   str4 = str1.slice(12 ),   str5 = str1.slice(30 ) console .log(str2) console .log(str3) console .log(str4) console .log(str5) console .log(str1) 
 
์์ ์ธ๋ฑ์ค๋ก slice()์ฌ์ฉ 1 2 3 4 const  str = 'The morning is upon us.' str.slice(-3 )  str.slice(-3 , -1 )  str.slice(0 , -1 )  
 
beginIndex๊ฐ ์์์ผ ๋ beginIndex๋ ๋ฌธ์์ด์ ๋์์๋ถํฐ ์ญ๋ฐฉํฅ์ผ๋ก 11๊ฐ๋ฅผ ์ธ๊ณ , endIndex๋ ์์์ ๋ถํฐ ์๋ฐฉํฅ์ผ๋ก 16๊ฐ๋ฅผ ์ผ๋ค. 
 
1 console .log(str.slice(-11 , 16 )) 
 
endIndex๊ฐ ์์์ผ ๋ beginIndex๋ ๋ฌธ์์ด์ ์์์ ๋ถํฐ ์๋ฐฉํฅ์ผ๋ก 11๊ฐ๋ฅผ ์ธ๊ณ , endIndex๋ ๋์์๋ถํฐ ์ญ๋ฐฉํฅ์ผ๋ก 7๊ฐ๋ฅผ ์ผ๋ค. 
 
1 console .log(str.slice(11 , -7 )) 
 
beginIndex, endIndex ๋ชจ๋ ์์์ผ ๋ beginIndex๋ ๋์์๋ถํฐ 5๊น์ง ์ญ์์ผ๋ก ๊ณ์ฐํ์ฌ ์์์ธ๋ฑ์ค๋ฅผ ์ฐพ์๊ณ , ๋์์๋ถํฐ 1๊น์ง ์ญ์์ผ๋ก ๊ณ์ฐํ์ฌ ๋ง์ง๋ง ์ธ๋ฑ์ค๋ฅผ ์ฐพ๋๋ค. beginIndex๊ฐ -5์ด๋ฏ๋ก ๋ฌธ์์ด ๊ธธ์ด 23 - 5์ 18๋ฒ์งธ์์ ์์ํ๋ค. endIndex๋ -1์ด๋ฏ๋ก ๋ฌธ์์ด ๊ธธ์ด 23์์ 23 - 1์ 22๋ฒ์งธ์์ ์ถ์ถ์ ์ข
๋ฃํ๋ค. 
 
1 console .log(str.slice(-5 , -1 )) 
 
 
References String.prototype.substr() String.prototype.substring() String.prototype.slice()