총 3가지 방법이 있다.
substr()
, substring()
, slice()
를 이용하면 된다.
var string = '일본어문법무작정따라하기';
const str1 = string.substr(2,5); // 어문법무작
const str2 = string.substr(-5,3); // 정따라
const str3 = string.substr(-2,4); // 하기
const str4 = string.substr(5); // 무작정따라하기
str3은 출력값이 "하기일본"이라고 나올 줄 알았는데 인덱스가 끝이나면 그냥 그걸로 끝인가보다. 다시 0번째 인덱스로 돌아가지 않는다. 주의하자.
또한 str4는 길이
를 생략하면 시작 인덱스부터 끝까지 출력한다.
var string = '일본어문법무작정따라하기';
const str1 = string.substring(2,5); // 어문법
const str2 = string.substring(-5,3); // 일본어 (0,3)
const str3 = string.substring(4,-2); // 일본어문 (0,4)
const str4 = string.substring(5); // 무작정따라하기
substring()
을 쓸 때 주의해야할 점이 있다.
괄호 안에 음수(-)를 넣으면 '0'으로 치환된다. 시작 위치에 쓰면 그대로 0이 되는데 종료 위치에 넣으면 '0'으로 치환됨과 동시에 시작 위치의 숫자와 뒤바뀐다.
또한 문자열을 자를 때 종료 위치 - 1까지의 문자열만 자른다.
var string = '일본어문법무작정따라하기';
const str1 = string.slice(2,5); // 어문법
const str2 = string.slice(-5,-1); // 정따라하기일본어
const str3 = string.slice(4,-2); // 법무작정따라
const str4 = string.slice(5); // 무작정따라하기
const str5 = string.slice(-3); // 라하기