본문 바로가기

IT/JavaScript

[JavaScript]indexOf() 사용하기


문자열 중에서 특정 문자나 문자열의 위치를 말해주는 메소드로 특정 문자가 있는지 없는지를 판단할 수 있습니다. 사용하는 구문은 아래입니다.
"전체 문자열".indexOf("검사할 문자", 시작순서)
전체 문자열은 검사할 전체 문자열이고 "검사할 문자"는 알고자 하는 특정 문자입니다.

[시작순서]는 선택사항으로 시작위치를 정수로 지정합니다. 지정할 수 있는 정수값은 0에서 전체 문자열 길이 -1 입니다.

[시작순서]로 5를 지정하면 전체 문자열 중에서 6번째 문자부터 검사합니다. 지정하지 않으면 전체 문자열에서 처음부터 검사합니다.
alert("red devel".indexOf("e"))
는 1입니다. 전체 문자열 "red devel" 중에서 "e"가 2번째에 있는것을 말해줍니다.

값은 0부터 시작하고 끝은 (전체 문자열길이 - 1)입니다. 위의 경우는 8입니다.
alert("red devel".indexOf("e", 3))
로 시작 위치를 4번째 부터 찾기 시작하면 5가 나옵니다. 만약 찾지 못했다면 정수 -1을 반환합니다.

이것으로 특정 문자열에서 문자가 있는지 없는지를 판단할 수 있습니다.
if( navigator.appName.indexOf("Netscape") != -1 )
	alert("당신의 브라우저는 넷스케이프입니다. ")
로 사용자 브라우저의 정보를 가지고 있는 navigator.appName이 "Netscape"라는 문자가 있으면

그 위치의 정수를 반환하므로 -1은 아닙니다. 그래서 위의 if()문은 참입니다.

만약 ie로 읽는다면 "Netscape" 문자열이 없기 때문에 -1을 반환합니다. 그래서 거짓입니다.

indexOf()를 사용하는 곳은 여러 가지가 있지만 가장 많이 사용하는 것은 위의 경우처럼 브라우저를 구별할 때 사용합니다.

출처 : http://user.chollian.net/~spacekan/source/string/indexOf.htm?indexOf#top