JavaScript에서 .substr() & .substring() & .slice() 는 모두 문자열을 잘라주는 역할을 합니다.
비슷하지만 조금 다른 세 함수를 비교해 보려한다.
String.substr(startIndex, length);
let str = '안녕하세요';
str.substr(0, 1); // 안
str.substr(1, 1); // 녕
str.substr(2, 3); // 하세요
str.substr(2); // 하세요
매개변수로 받은 startIndex 부터 length 길이만큼 문자열을 잘라 반환
첫번째 매개변수로 음수가 온다면, 뒤에서부터...
String.substring(startIndex, endIndex);
let str = '안녕하세요'
str.substring(0, 1); // 안
str.substring(1, 1); // ''
str.substring(1, 2); // 녕
str.substring(2, 3); // 하
str.substring(2); // 하세요
매개변수로 받은 startIndex 부터 endIndex 이전까지 잘라 반환(endIndex 위치의 문자는 포함되지 않는다.)
첫번째 매개변수로 음수가 온다면, startIndex 값은 0으로 취급된다.
substring() 과 사용법이 같다.
첫번째 매개변수로 음수가 온다면, 뒤에서부터...
start 또는 end 가 음수이고, 음수의 절대값이 해당 String의 길이보다 클때 : 음수는 단순히 0으로 처리된다.
start > end
substring()
: start 값과 end 값이 바꾸어 처리
slice()
: 비어있는 String, 즉 ''를 반환한다.
start 또는 end 음수일 경우
substring()
: start값이 음수인 경우, start값은 0으로 취급
slice()
: string의 가장 뒤에서 음수의 절대값만큼 내려온 index로 취급