문자열에 문자 추출
문자열에서 원하는 부분을 추출할 때 사용할 수 있는 메소드들이 있습니다.
구문
문자열.charAt(인덱스): 지정한 인덱스의 문자를 추출문자열.slice(시작인덱스, 종료인덱스): 지정 범위 내 문자열 추출문자열.substring(시작인덱스, 종료인덱스): 지정 범위 내 문자열 추출문자열.substr(시작인덱스, 글자수): 지정 범위 내 문자열 추출
예시
'JavaScript'.charAt(3); // a
'JavaScript'.charAt(); // J (인수 생략시 기본값은 인덱스 0)
'JavaScript'.slice(0, 4); // Java
'JavaScript'.slice(0); // JavaScript (두번째 인수를 생략시 문자열의 마지막까지 추출)
'JavaScript'.substring(0, 4); // Java
'JavaScript'.substring(0); // JavaScript (두번째 인수를 생략시 문자열의 마지막까지 추출)
'JavaScript'.substr(4, 5); // Scrip (네 번째 인덱스부터 문자 5개 추출)
'JavaScript'.substr(4); // Script (두번째 인수를 생략시 문자열의 마지막까지 추출)
slice(), substr()의 인수는 음수도 사용 할 수 있습니다. 음수는 뒤에서부터 문자열을 추출하며, 시작 인덱스는 -1입니다.
substring()은 음수를 모두 0으로 간주하기 때문에 뒤에서부터 문자열을 추출할 수 없습니다.
'감자 고구마'.slice(3, -1); // 고구
'감자 고구마'.slice(-6, -4); // 감자
'감자 고구마'.substring(3, -3); // '감자' 반환 (substring(3, 0)과 같은 의미)
'감자 고구마'.substring(-4, -1); // '' 반환 (substring(0, 0)과 같은 의미)
'감자 고구마'.substr(-3, 2); // 고구 (뒤에서 세번째 인덱스부터 문자 2개 추출)
slice()와 substring()의 차이
slice()와 substring()은 시작 인덱스가 종료 인덱스보다 클 경우 처리 방식이 다릅니다. substring()은 시작 값이 종료 값보다 클 경우 두 인덱스를 바꿔서 처리합니다.
// slice()에서는 시작 인덱스가 종료인덱스보다 클경우 ''을 반환
'안녕하세요'.slice(3, 1); // ''
// substring(3, 1)은 큰수를 종료 인덱스로 바뀌서 처리 -> substring(1, 3)
'안녕하세요'.substring(3, 1); // 녕하