자바스크립트에서 원하는 문자열을 찾거나 배열의 값을 찾는 강단한 방법으로 indexOf() 함수가 사용됩니다. 아래에서 더 자세하게 알아봅니다.



# 자바스크립트 indexOf() 알아보기

내장함수 indexOf() 함수는 문자열에서 원하는 문자열을 검색하여 찾거나 아니면 배열에서 원하는 특정 배열값의 존재여부 등을 확인할 수 있습니다. 배열의 경우 위치값을 index로 반환하는 함수입니다.

그럼 indexOf()는 어떻게 사용할까요? 사용 방법은 매우 간단하며 아래와 같이 함수의 매개변수로 원하는 값, 찾을 문자열을 넘겨줍니다. 아래의 방법을 보세요.

"문자열".indexOf("찾을 문자")

특징이라면 문자타입(String) 뿐만 아니라 배열(Array)에서도 사용가능하다는 점입니다. 매우 유용하죠. 또한 만약 그 값이 존재하는 경우 해당 위치를 알려준다는 점입니다. 그럼 아래 예제를 참고하세요.



! indexOf() 예제소스 코드보기

아래는 간단한 indexOf() 예제입니다. 문자열 중에서 찾는 값이 있으면 "Find it"이라고 화면에 출력하며 없는 경우 "Not Found"를 출력합니다.
var text = "456789";
var findStr = "123"; // 123이 있는지 찾아보기

if (text.indexOf(findStr) != -1) {
  alert("Find!");
}
else {
  alert("Not Found!!");
}

해당 문자열에 123이 없기 때문에 Not Found!!를 출력합니다. 위 예제소스를 보면 if 조건문에서 -1의 값을 가지는가의 여부를 확인합니다. indexOf()는 값을 찾고 그 결과로 숫자를 반환하는데 없는 경우 -1을 반환합니다. 하지만 있는 경우(존재하는 경우)에는 그 결과값으로 문자열의 시작위치에 해당하는 index를 반환하여 줍니다.

이 함수의 장점이라면 매우 간단하게 해당 값을 가지고 있는지의 확인해서 위치를 반환하기 때문에 코드가 간결하다는 점입니다.


! -1이 의미하는 것여기서는 -1을 확인값으로 사용하였는데 그 이유는 만약에 특정 문자열이 해당하는 텍스트 안에서 찾았다면 if 문에서 절대 -1이 될 수 없는 0 이상의 양수 값이기 때문입니다. 그래서 -1은 값이 없음을 의미하게됩니다...



# 마치면서

문자열 검색을 위해서는 match() 함수도 사용가능합니다. 이를 사용해 해당 텍스트의 포함여부를 쉽게 알수 있습니다. 위 함수는 배열에도 사용가능하지만 match()는 문자열에만 사용하죠. 다만 정규표현식을 사용할 수 있어 더 다양한 조건 검색이 가능합니다... 이점 꼭 참고하세요!

match() 함수 링크로 바로가기 >
http://webisfree.com/2014-11-28/[자바스크립트]-동일한-단어를-문자열에서-찾기-match()-함수