자바스크립트에는 문자열을 자르는 여러 함수들이 있다.
이 함수들을 비교해보자.
String.slice(beginIndex,endIndex)
beginIndex에서 endIndex 전까지의 부분 문자열을 반환한다.
beginIndex
beginIndex는 시작점이 0부터 시작하는 인덱스이다.
만약 음수라면 beginIndex는 String.length+beginIndex로 취급된다.
beginIndex가 String.length보다 크거나 같은 경우 빈 문자열을 반환한다.
endIndex
endIndex는 옵션값이며 0부터 시작하는 추출 종료점 인덱스로, 그 직전
까지 추출된다 즉 인덱스 위치의 문자는 포함되지 않는다.
endIndex가 생략될경우 마지막 문자까지 추출하며, 마찬가지로 음수일 경우엔 String.length+endIndex로 취급된다.
1 2 3 4 5
| let str = "안녕하세요."; console.log(str.slice(0, 1)); console.log(str.slice(0, 2)); console.log(str.slice(-3)); console.log(str.slice(-3, -2));
|
String.substr(start,length)
바람직하지 않은 특징을 갖고있어 사용처가 없어지면 명세에서 제거될 함수라고 한다.
start에서 length만큼의 문자를 반환하는 함수이다.
start
start는 추출하고자 하는 문자들의 시작위치이다.
음수가 주어다면 문자열 총길이 + start 값으로 취급한다.
start가 양수이고 문자열 전체길이보다 크기가 같거나 클 경우 빈 문자열을 반환한다.
length
length는 옵션값으로 추출한 문자들의 길이이다.
length가 0 또는 음수일 경우 빈 문자열을 반환하며,
length가 생략되면 끝까지 추출하여 반환한다.
1 2 3 4 5
| let str = "안녕하세요."; console.log(str.substr(0, 1)); console.log(str.substr(0, 2)); console.log(str.substr(-3)); console.log(str.substr(-3, -2));
|
String.substring(indexStart,indexEnd)
시작 인덱스부터 종료 인덱스 전까지 문자열의 부분 문자열을 반환한다.
indexStart
반환 문자열의 시작 인덱스이다.
0보다 작을 경우 0으로 String.length보다 클 경우 String.length로 취급된다. NaN값은 0으로 처리된다.
indexEnd
indexEnd는 옵션값이며, 반환 문자열의 마지막 인덱스이다.
indexEnd의 직전
까지 추출한다. 즉 인덱스 위치의 문자는 포함되지 않는다.
indexEnd가 생략되었을 경우, 끝까지 모든 문자를 반환한다.
만약 indexStart와 같을 경우 빈 문자열을 반환한다.
indexStart보다 작을 경우 String.substring(indexEnd,indexStart)처럼 작동한다.
0보다 작을 경우 0으로 String.length보다 클 경우 String.length로 취급된다. NaN값은 0으로 처리된다.
1 2 3 4 5 6
| let str = "안녕하세요."; console.log(str.substring(0, 1)); console.log(str.substring(1, 0)); console.log(str.substring(0, 2)); console.log(str.substring(-3)); console.log(str.substring(-3, -2));
|