자바스크립트에서 indexOf()
, lastIndexOf()
를 이용하면 문자열의 어떤 문자 또는 문자열이 어디에 있는지 위치 정보(Index)를 가져올 수 있습니다. 예제와 함께 자세히 함수 사용 방법을 알아보겠습니다.
1. indexOf() : 문자열의 위치 찾기
indexOf(String)
는 문자열에서 인자로 전달된 문자열이 있는지 찾고, 그 문자열 위치에 해당하는 Index를 리턴합니다. 만약 찾는 문자열이 없으면 -1
을 리턴합니다. 주의할 점은, 대소문자를 구분하여 비교합니다. 그리고 문자열의 왼쪽에서 오른쪽 방향으로 탐색하며, 가장 먼저 찾아진 문자열의 Index를 리턴합니다.
const str = 'Hello, World, Javascript';
console.log('1: ' + str.indexOf('Hello'));
console.log('2: ' + str.indexOf('hello'));
console.log('3: ' + str.indexOf(','));
console.log('4: ' + str.indexOf('World'));
console.log('5: ' + str.indexOf('Java'));
Output:
1: 0
2: -1
3: 5
4: 7
5: 14
단순히 찾는 문자열이 있는지만 확인하는 것이라면 indexOf()보다는 includes()가 가독성이 좋습니다.
indexOf(searchString, position) : 특정 index 부터 문자열 찾기
indexOf(searchString)
는 문자열의 Index 0부터 인자로 전달된 searchString을 찾고 Index를 리턴합니다. 문자열 처음이 아닌, 특정 Index부터 찾으려면 인자로 찾기 시작할 Index를 전달하면 됩니다.
아래 예제는 문자열의 앞에서 첫번째, 두번째, 세번째 comma의 Index를 찾는 예제입니다.
const str = 'Hello, World, Javascript,';
let idx = str.indexOf(',');
console.log('1: ' + idx);
idx = str.indexOf(',', idx + 1);
console.log('2: ' + str.indexOf(',', idx));
idx = str.indexOf(',', idx + 1);
console.log('3: ' + str.indexOf(',', idx));
Output:
1: 5
2: 12
3: 24
2. lastIndexOf() : 뒤에서 앞쪽 방향으로 문자열 위치 찾기
indexOf()
는 문자열의 왼쪽에서 오른쪽 방향으로 문자열을 찾습니다. 동일한 문자열이 있어도, 가장 먼저 찾은 문자열의 Index를 리턴합니다. 해당하는 문자열이 없다면 -1
을 리턴합니다.
lastIndexOf()
는 문자열의 뒤에서 앞쪽 방향으로 문자열을 찾고, Index를 리턴합니다. 가장 마지막에 찾은 문자열의 Index가 필요하다면 lastIndexOf()
를 사용하시면 됩니다.
const str = 'Hello, World, Javascript';
console.log('1: ' + str.indexOf('World'));
console.log('2: ' + str.lastIndexOf('World'));
console.log('3: ' + str.indexOf(','));
console.log('4: ' + str.lastIndexOf(','));
Output:
1: 7
2: 7
3: 5
4: 12
lastIndexOf(searchString, position) : 특정 index 부터 문자열 찾기
lastIndexOf(searchString)
는 문자열의 마지막 Index부터 인자로 전달된 searchString을 찾고 Index를 리턴합니다. 문자열 처음이 아닌, 특정 Index부터 찾으려면 인자로 찾기 시작할 Index를 전달하면 됩니다.
아래 예제는 문자열의 뒤에서 첫번째, 두번째, 세번째 comma의 Index를 찾는 예제입니다.
const str = 'Hello, World, Javascript,';
let idx = str.lastIndexOf(',');
console.log('1: ' + idx);
idx = str.lastIndexOf(',', idx - 1);
console.log('2: ' + str.lastIndexOf(',', idx));
idx = str.lastIndexOf(',', idx - 1);
console.log('3: ' + str.lastIndexOf(',', idx));
Output:
1: 24
2: 12
3: 5
Related Posts
- Javascript - 현재 날짜/시간을 항상 한국 기준으로 가져오기
- Javascript - 문자열 사이에 문자 넣기
- Javascript - 버튼 활성화/비활성화 시키는 방법
- Javascript - 버튼 이름 변경하기
- Javascript - div 안의 내용 가져오기, 변경, 추가, 삭제
- Javascript - <ol>, <ul>에 <li> 동적 추가, 삭제
- Javascript - div 생성, 추가, 삭제 방법
- Javascript - 테이블 행(tr) 숨기기, 보이기
- Javascript - div에 링크 거는 방법
- Javascript - 자식 요소(element) 개수 확인
- Javascript - 요소(element) 복사, 붙여넣기
- Javascript - div에 클릭 이벤트(onclick) 설정 방법
- Javascript - 체크박스 선택/해제 시, 텍스트박스 활성화/비활성화
- Javascript - input 숫자만 입력받도록 설정
- Javascript - 자식 노드 모두 제거
- Javascript - 체크박스 선택, 해제 방법
- Javascript - input text 값 가져오기
- JavaScript - 문자열을 배열(Array)로 변환
- JavaScript - 특정 문자열의 포함 여부 확인 (includes, 정규표현식)
- JavaScript - 문자열 비교 방법, 5가지
- JavaScript - 문자열 바꾸기(replace, 정규식 치환)
- JavaScript - 배열 전체 출력 (for, forEach, for in, for of)
- JavaScript - 한번만 실행되는 함수 (once: true)
- JavaScript - 선택된 checkbox 값 가져오기
- JavaScript - element(버튼, div) 보이기 숨기기
- JavaScript - 숫자를 배열로 변경하는 방법
- JavaScript - div, 태그 안의 내용 가져오기
- JavaScript - 부모, 형제, 자식 element 찾기
- JavaScript - 클래스 이름으로 element 찾는 방법
- JavaScript Array find() 함수
- JavaScript Array splice() 함수
- JavaScript의 contains() 함수
- JavaScript sort() 함수, 예제 소개
- JavaScript - Set 생성 및 초기화
- JavaScript Set add() 함수