[JavaScript] 문자열 특정 문자 위치 찾기 (indexOf, search)

자바스크립트에서 문자열에서 문자 또는 문자열의 위치를 검색 위해서는 indexOf와 search 함수를 사용하고, 문자열의 뒤에서 부터 문자열을 검색할 때는 lastIndexOf 함수를 사용하면 된다.

  • str.indexOf(searchValue[, fromIndex])
  • str.search(regexp)
  • str.lastIndexOf(searchValue[, fromIndex])

 

대부분 문자열을 찾을 때는 indexOf 함수를 많이 사용하며, 정규식을 사용해야 할 경우 search 함수를 사용하면 된다. 문자열을 찾으면 문자열의 첫 번째 위치를 반환하고 찾지 못하면 -1을 반환한다.

 

indexOf 함수로 문자열 찾기

var str = 'HTML,CSS,JavaScript';
var pos1 = str.indexOf('JavaScript');
// 결과 : 9

var pos2 = str.indexOf('Kotlin');
// 결과 : -1

 

indexOf("찾을 문자열")

찾은 문자열의 시작 위치를 반환한다. 찾을 문자열이 없을 경우 -1을 반환한다.

대소문자 구분 없이 검색하기 위해서는 문자열을 대문자나 소문자로 변환 후 검색하면 된다.

예) str.toLowerCase().indexOf('javascript');

 

var str = 'HTML,CSS,JavaScript';
var pos = str.indexOf(',');
// 결과 : 4

 

찾을 문자열이 여러 개인 경우 첫 번째 찾은 문자열의 위치를 반환한다.

찾을 문자 쉼표(',')가 2개이지만 첫 번째 찾은 쉼표의 위치를 반환했다.

 

var str = 'HTML,CSS,JavaScript';
var pos1 = str.indexOf(',', 5);
// 결과 : 8

var pos2 = str.indexOf(',', str.indexOf(',') + 1);
// 결과 : 8

 

indexOf("찾을 문자열", "시작 위치")

찾을 위치를 두 번째 인자에 부여하면 시작 위치부터 문자열을 찾는다.

위의 예제는 문자열의 5번째 문자부터 쉼표를 찾는다.

 

search 함수로 문자열 찾기

var str = 'HTML,CSS,JavaScript';
var pos1 = str.search('JavaScript');
// 결과 : 9

var pos2 = str.search('Kotlin');
// 결과 : -1

 

search("찾을 문자열")

search 함수는 indexOf 함수와 동일하게 문자열을 찾을 수 있다.

search 함수는 문자열을 찾을 때 시작 위치는 지정할 수는 없다. 

 

/* 한글 찾기 */
var str = 'HTML,CSS,자바스크립트';
var pos = str.search(/[ㄱ-ㅎ|ㅏ-ㅣ|가-힣]/);
// 결과 : 9

 

/* 대소문자 구분없이 검색 */
var str = 'HTML,CSS,JavaScript';
var pos = str.search(/javascript/gi);
// 결과 : 9

 

search("정규식")

search 함수는 정규식을 사용하여 문자열을 찾을 수 있다.

 

 

lastIndexOf 함수로 뒤에서부터 문자열 찾기

var str = 'HTML,CSS,JavaScript';
var pos = str.lastIndexOf(',');
// 결과 : 8

 

lastIndexOf("찾을 문자열") 또는 lastIndexOf("찾을 문자열", "시작 위치")

lastIndexOf 함수는 indexOf 함수와 기본적인 사용법은 비슷하다.

 

댓글

Designed by JB FACTORY