카테고리 없음

자바스크립트 문자열 indexOf

codinglooking 2026. 7. 7. 12:45

특정 문자열의 첫 번째 등장 위치 찾기

문자열 indexOf() 함수는
문자열에서 인수로 전달된 문자열를 찾아 첫 번째로 검색된(등장한) 문자열의 인덱스를 반환하는 함수입니다.
인수로 전달된 문자열를 찾을 수 없다면 -1을 반환합니다.

 

이 글은 코딩에브리바디(codingeverybody.kr)의 내용을 참조해 작성했습니다.

 

특징

  • 이 함수는 문자열에서 문자의 위치를 찾거나, 포함하는지 확인할 때 유용합니다.
  • 이 함수는 대소문자를 구분합니다.

기본 예제

const greeting = "환영합니다. 코딩에브리바디입니다.";

/*
 * 주의하세요!
 * 문자열에서 인덱스는 0부터 시작합니다.
 * 첫 번째 문자열의 인덱스는 0이고, 두 번째 문자열의 인덱스는 1입니다.
*/

// 문자열 greeting에서 문자열 "환영합니다."를 찾아
// 첫 번째로 검색된(등장한) 문자열("환")의 인덱스를 반환합니다.
const hello = greeting.indexOf("환영합니다.");
console.log(hello); // 출력: 0;

// 문자열 greeting에서 인수로 전달된 문자열 "반갑습니다."를 찾을 수 없으므로
// -1을 반환합니다.
const niceTomeetYou = greeting.indexOf("반갑습니다.");
console.log(niceTomeetYou); // 출력: -1;

const coding = greeting.indexOf("코딩", 5);
// 두 번째 인수는 검색을 시작할 인덱스입니다.
// 이 인수는 옵션으로, 생략하면 처음(0)부터 검색합니다.
// 인덱스는 여전히 맨 왼쪽부터 오른쪽으로 카운트됩니다.
// 인수의 값이 5이므로, 6번째부터 검색했을 때 문자 "코딩"은 검색이 되고,
// 맨 왼쪽(인덱스 0)부터 검색된 문자열 "코"의 인덱스는 7입니다.

console.log(coding); // 출력: 7;

 

Syntax

str.indexOf(searchValue[, fromIndex])

 

Parameters

searchValue : 필수. 찾을 문자열입니다. 대소문자를 구분합니다. 아무 값도 주어지지 않으면 문자열 "undefined"를 찾으려는 문자열로 사용합니다.

 

fromIndex : 옵션. 검색을 시작할 0 기반의 인덱스입니다. 생략하면 기본값으로 0이 사용됩니다. 음수 값을 사용할 수 있으며, 이 경우 배열의 끝에서부터 역으로 카운트됩니다. 그러나, 여전히 왼쪽에서 오른쪽으로 검색합니다. indexOf() 함수를 적용할 대상 문자열의 길이(str.length)보다 크거나 같으면 -1을 반환합니다.

 

Return value

indexOf() 함수를 적용할 대상 문자열에서 인수로 전달된 문자열를 찾아 첫 번째로 검색된(등장한) 문자열의 인덱스를 반환합니다.
인수로 전달된 문자열를 찾을 수 없다면 -1을 반환합니다.

 

매개변수와 반환 값 예시

/*
 * 인수로 전달된 문자열이 indexOf() 함수를 적용할 문자열에서 중복으로 있다면,
 * 첫 번째로 검색된(등장한) 문자열의 인덱스를 반환합니다.
*/
const str = "색상은 빨강, 파랑, 파랑, 노랑입니다.";

// 문자열 str에서 문자열 "파"를 찾아 첫 번째로 검색된(등장한) 문자열의 인덱스를 반환합니다.
const val_1 = str.indexOf("파");

// 문자열 str에서 찾을 문자열 "파"는 두 개가 있습니다.
// 인덱스 8과 12에 있습니다.
// 하지만, 첫 번째로 검색된 찾을 문자열의 인덱스인 8을 반환합니다.
console.log(val_1); // 출력: 8;

// 문자열 str에서 인수로 전달된 문자열 "녹"을 찾을 수 없으므로 -1일 반환합니다.
const val_2 = str.indexOf("녹");
console.log(val_2); // 출력: -1;

const val_3 = str.indexOf("은", 1);
// 두 번째 인수는 검색을 시작할 인덱스입니다.
// 이 인수는 옵션으로, 생략하면 처음(0)부터 검색합니다.
// 인수의 값이 1이므로, 두 번째 문자열부터 검색했을 때 찾을 문자열 "은"은 검색이 되고,
// 맨 왼쪽(인덱스 0)부터 검색된 문자열 "은"의 인덱스는 2입니다.

console.log(val_3); // 출력: 2;

//////////////////////////////////////////
const undefinedStr = "값을 할당하지 않은 변수의 값을 undefined라 합니다.";
const val_4 = undefinedStr.indexOf();

// 첫 번째 매개변수에 아무 값도 주어지지 않으면
// 문자열 "undefined"를 찾으려는 문자열로 사용합니다.
// "undefined"의 인덱스인 18을 반환합니다.
console.log(val_4); // 출력: 18;

 

주의할 점 - 대소문자를 구분

const redString = "red";
const searchRed = redString.indexOf("Red");

// 대문자 "R"과 소문자 "r"을 구분합니다.
console.log(searchRed); // 출력: -1;

 

참고문헌

https://codingeverybody.jp/javascript-string-indexof-function/

 

JavaScript 文字列 indexOf()関数:特定の文字列が最初に出現する位置を検索 - codingEverybody

文字列のindexOf()関数は、引数として渡された特定の文字列が最初に出現するインデックスを返します。引数として渡された要素が見つからない場合は-1を返します。

codingeverybody.jp

 

https://coding.courses/javascript-string-indexof-function/

 

JavaScript String indexOf() Function – Find First Substring Index - codingCourses

The indexOf() function for strings returns the index of the first occurrence of the specified substring. If the specified substring is not found, it returns -1.

coding.courses