logo

JavaScript에서 indexof와 검색의 차이점

소개:

JavaScript는 널리 사용되는 프로그래밍 언어이며 문자열을 조작하기 위한 여러 내장 메서드를 제공합니다. 문자열에서 특정 문자나 하위 문자열을 검색하는 데 가장 일반적으로 사용되는 두 가지 방법은 다음과 같습니다. 인덱스() 그리고 찾다() . 이 두 가지 방법은 기능면에서는 비슷해 보이지만 몇 가지 중요한 차이점이 있습니다. 이 기사에서는 JavaScript에서 indexOf()와 search()의 차이점을 살펴보겠습니다.

indexOf() 메서드:

그만큼 인덱스() 메소드는 주어진 문자열 내에서 하위 문자열이 처음 나타나는 인덱스를 찾는 데 사용되는 내장 JavaScript 함수입니다. 이 메서드는 문자열의 시작 부분부터 시작하여 지정된 하위 문자열이 처음 나타나는 인덱스를 반환합니다. 하위 문자열이 발견되지 않으면 메서드는 다음을 반환합니다. -1 .

통사론:

사용 구문은 인덱스() 방법은 다음과 같습니다.

 string.indexOf(searchValue[, fromIndex]) 

여기, 검색할 문자열입니다. 검색값 검색할 값입니다. fromIndex 검색이 시작되어야 하는 문자열의 위치를 ​​지정하는 선택적 매개변수입니다. 만약 fromIndex 제공되지 않으며, 인덱스() 메소드는 문자열의 처음부터 검색을 시작합니다. 만약에 fromIndex 부정적인 값을 입력하면 문자열 끝부터 검색이 시작됩니다.

예:

폴더 이름 바꾸기 linux

이해를 돕기 위해 예를 들어보자 인덱스() 방법:

 let str = 'JavaScript is a powerful programming language'; let index = str.indexOf('powerful'); console.log(index); 

산출:

 16 

설명:

여기서는 indexOf() 메서드 해당 단어가 처음 나타나는 것을 검색합니다. '강한' 문자열에 'JavaScript는 강력한 프로그래밍 언어입니다' . 그 말부터 '강한' 인덱스에 나타납니다 16 , 메서드가 반환됩니다. 16 .

검색() 메서드:

그만큼 검색() 메서드 또한 주어진 문자열 내에서 하위 문자열의 첫 번째 문자 인덱스를 찾는 데 사용되는 내장 JavaScript 함수입니다. 이 메서드는 문자열의 시작 부분부터 시작하여 지정된 하위 문자열이 처음 나타나는 인덱스를 반환합니다. 하위 문자열을 찾을 수 없으면 메서드는 다음을 반환합니다. -1 .

통사론:

사용 구문은 검색() 메서드 다음과 같다:

 string.search(regexp) 

여기, 검색할 문자열입니다. 정규식 정규식 검색할 패턴입니다. 만약 정규식 패턴이 발견되고, 찾다() 메서드는 일치하는 첫 번째 문자의 인덱스를 반환합니다. 정규식 패턴을 찾을 수 없으면 메서드는 다음을 반환합니다. -1 .

예:

이해를 돕기 위해 예를 들어보자 찾다() 방법:

 let str = 'JavaScript is a powerful programming language'; let index = str.search(/powerful/); console.log(index); 

산출:

 16 

설명:

여기서는 찾다() 메소드는 다음을 검색합니다. 정규식 무늬 /강한/ 문자열에 'JavaScript는 강력한 프로그래밍 언어입니다' . 정규식 패턴이 단어와 일치하므로 '강한' , 메서드가 반환됩니다. 16 .

indexOf()와 search()의 차이점:

비록 둘 다 인덱스() 그리고 찾다() 메서드는 주어진 문자열 내에서 하위 문자열을 검색하는 데 사용되지만 몇 가지 주요 차이점이 있습니다. 이러한 차이점을 나란히 살펴보겠습니다.

indexOf() 메서드 search() 메서드
인덱스() 메소드는 주어진 문자열 내에서 지정된 하위 문자열을 검색합니다. 찾다() 메소드는 주어진 문자열 내에서 정규식 패턴을 검색합니다.
indexOf() 메서드는 지정된 하위 문자열이 처음 나타나는 인덱스를 반환합니다. search() 메서드는 일치하는 첫 번째 문자의 인덱스를 반환합니다.
indexOf() 메서드는 정규식을 지원하지 않습니다. search() 메서드는 정규식을 지원합니다.
indexOf() 메서드는 선택적 매개 변수 fromIndex를 허용하여 특정 인덱스에서 검색을 시작할 수 있습니다. search() 메서드는 특정 인덱스에서 검색을 시작하기 위한 선택적 매개 변수를 허용하지 않습니다.
indexOf() 메서드는 정규식을 지원하지 않기 때문에 search() 메서드보다 빠릅니다. search() 메서드는 정규식을 지원하므로 indexOf() 메서드보다 속도가 느립니다.
indexOf() 메서드는 대소문자를 구분합니다. search() 메서드도 기본적으로 대소문자를 구분하지만 다음을 사용하여 대소문자를 구분하지 않도록 설정할 수 있습니다. /i 플래그 정규식 패턴에서.
indexOf() 메소드는 간단한 문자열 검색에 널리 사용됩니다. search() 메서드는 정규식을 사용한 복잡한 패턴 일치에 널리 사용됩니다.

결론:

결론적으로 둘 다 인덱스() 그리고 찾다() 메소드는 주어진 문자열 내에서 하위 문자열을 검색하는 데 유용합니다. 그러나 다양한 사용 사례에 적합하도록 만드는 몇 가지 주요 차이점이 있습니다. indexOf() 메서드는 더 빠르고 간단한 문자열 검색에 더 적합한 반면, search() 메서드는 정규식을 지원하며 복잡한 패턴 일치에 더 적합합니다. 프로그램의 특정 요구 사항에 따라 적절한 방법을 선택하는 것이 중요합니다.