String.prototype.indexOf()
사용법
문자열 indexOf()
함수는
문자열에서 인수로 전달된 문자열를 찾아 첫 번째로 검색된(등장한) 문자열의 인덱스를 반환하는 함수입니다.
인수로 전달된 문자열를 찾을 수 없다면 -1
을 반환합니다.
이 함수는 대소문자를 구분합니다.
indexOf()
함수는 문자열에서 문자의 위치를 찾거나, 존재하는지 확인할 때 유용합니다.
배열에서는 Array.prototype.indexOf()
가 같은 역할을 합니다.
문자열에서 특정 문자열이 마지막에 등장한 위치를 찾으려면 lastIndexOf()
함수를 사용하세요.
indexOf()
함수의 형식은 다음과 같습니다.
구문
str
은 indexOf()
함수를 적용할 대상 문자열입니다.
매개변수
searchValue |
필수. 찾을 문자열입니다.
대소문자를 구분합니다. 아무 값도 주어지지 않으면 문자열 "undefined" 를 찾으려는 문자열로 사용합니다. |
---|---|
fromIndex |
옵션. 검색을 시작할 0 기반의 인덱스입니다.
|
반환 값
indexOf()
함수를 적용할 대상 문자열에서 인수로 전달된 문자열를 찾아 첫 번째로 검색된(등장한) 문자열의 인덱스를 반환합니다.
인수로 전달된 문자열를 찾을 수 없다면 -1
을 반환합니다.
매개변수와 반환 값 예시
주의할 점
indexOf()
함수로 문자열을 검색할 때에는 대소문자를 구분합니다.
이 함수의 관련 함수를 참조하세요.
다양한 활용 예제
indexOf()
함수에 관련된 다양한 활용 예제입니다.
부분 문자열의 존재 여부 확인
indexOf()
함수를 사용하여 문자열 내에서 특정 부분 문자열이 존재하는지 확인할 수 있습니다. 반환값이 -1
이 아닌 경우, 부분 문자열이 존재하는 것입니다.
부분 문자열의 존재 여부 확인하는 함수 중에서는 includes()
함수가 있습니다.
ECMAScript 6(ES6)에서 도입된 includes()
함수는 문자열에서 주어진 문자열이 포함되어 있으면 true
를 그렇지 않으면 false
를 반환하는 함수입니다. 이 함수는 2015년에 공식적으로 발표되었으며, 인터넷 익스플로러(Internet Explorer) 브라우저에서 지원하지 않는다는 불편함이 있습니다. 인터넷 익스플로러 호환성을 고려할 필요가 없다면 부분 문자열의 존재 여부 확인은 indexOf()
함수 보다는 includes()
함수가 더 직관적이고 활용하기 편리합니다.
대소문자 구분 없는 문자열 검색
indexOf()
함수는 검색하는 문자열의 대소문자를 구분하지만, toLowerCase()
함수를 사용하여 대소문자를 무시하고 문자열 내에서 부분 문자열을 검색할 수 있습니다.
toLowerCase()
함수는
문자열 객체의 메서드 중 하나로, 문자열을 모두 소문자로 변환하는 함수입니다.
특정 문자열의 반복 횟수
코드 부연설명
while
문은 조건식이 참(true
)인 동안 코드 블록을 반복 실행하는 반복문입니다.
위 코드에서는 indexOf()
함수를 사용하여 "Hello"
문자열의 첫 번째 발생 위치를 찾은 후, 이 위치 이후에서 다시 indexOf()
를 호출하여 다음 발생 위치를 찾습니다. 이러한 과정을 반복하고 발생 횟수(count
)를 하나씩 추가하고 그 값을 확인하여 "Hello"
문자열이 나타나는 횟수를 계산합니다.
명세서
명세서 사양 | |
---|---|
String.prototype.indexOf()
|
ECMAScript Language Specification #sec-string.prototype.indexof |
브라우저 호환성
메서드 |
데스크탑 Chrome
|
데스크탑데스크탑 Edge
|
데스크탑 Firefox
|
Safari
|
---|---|---|---|---|
indexOf()
|
1 | 12 | 1 | 1 |