계발하는 개발자

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

📌 Language/Javascript

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

dev_genie 2023. 6. 8. 16:02

search 메서드와 indexOf 메서드는 둘 다 자바스크립트 문자열에서 특정 문자 또는 부분 문자열을 검색하는 데 사용되는 메서드입니다.

그러나 두 메서드 간의 반환 값과 그 사용 방법에서는 차이가 있습니다.

 

1. indexOf

사용 방법:  문자열.indexOf(찾을 문자 또는 부분 문자열)

반환값: indexOf() 메서드는 문자열 내에서 소괄호 안의 특정 문자가 처음으로 등장하는 인덱스를 반환합니다.

찾을 문자열이 없을 경우 '-1'을 반환합니다.

예시: 

Ex - 특정 문자)
const tx = "Hello? How are you?"
tx.indexOf("?")

// 결과 : 5를 반환

예컨대, sum.indexOf('?') 라면 해당 문자열에서 '?' 문자가 처음으로 등장하는 인덱스를 반환합니다.

만약 '?' 문자가 문자열에 존재하지 않는다면 -1을 반환합니다.

위 예에서는 문자열 내에서 '?'문자가 처음 등장하는 인덱스로 5를 반환할 것입니다.

(문자열의 첫번째 문자를 인덱스 0번으로 차례로 세서 5번째 인덱스에 '?' 가 위치하고 있으므로!)


2. search

사용 방법:  문자열.search(정규식 또는 검색할 문자열)

반환값: 검색된 문자열 또는 정규식의 인덱스를 반환합니다. 검색되지 않으면 '-1'을 반환합니다.

예시: 

Ex1 - 특정 문자)
const tx = "Hello? How are you?"
tx.search("?")

// 결과 : 5를 반환

Ex2 - 정규식)
const str = 'Hello, World!';
const regex = /o/;

// 결과 : 4를 반환

indexOf 메서드와 마찬가지로 문자열에서 검색할 특정 문자가 등장하는 인덱스를 반환할 수 있고,

다른 점이라면 정규식을 사용하여 문자열에서 해당 정규식에 해당하는 인덱스를 반환할 수도 있습니다.

 

indexOf 메서드의 경우는 search처럼 정규식을 직접 처리하지 않고, 

문자열 또는 부분 문자열에 대해서만 작동하는 차이가 있습니다.

Ex - indexOf 메서드에서 정규식 문자 찾기)
const str = 'Hello, World!';
console.log(str.indexOf(/o/));
// 결과: -1

Ex - search 메서드에서 정규식 문자 찾기)
const str = 'Hello, World!';
console.log(str.search(/o/));
// 결과: 4
LIST
profile

dev_genie

@dev_genie

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!