[JavaScript] indexOf() vs search() 비교 분석
indexOf() vs search() 비교 분석
\ | indexOf() | search() |
---|---|---|
공통점 | > 두 메서드는 인자값에 의해 해당 문자(열)이 있는 첫 번째 위치를 index값으로 반환한다. > 해당 문자(열)을 찾지 못하면 -1를 반환한다. |
|
차이점 | > 검색값을 이용해 문자열을 처리한다.(정규식 x) > fromIndex값을 통해 검색을 시작할 위치를 정할 수 있다. . |
> 정규식을 이용해 문자열을 처리한다. > flags값을 통해 전역검색 및 대소문자 구분없이 검색할 수 있다. |
Syntax | indexOf(searchValue) indexOf(searchValue, fromIndex) |
search(/regexp/) search(/regexp/flags) |
아래의 예시를 통해 더 자세히 알아보자.
주의사항: index값은 0부터 시작한다.
var str = 'Hello, world';
//indexOf()
console.log(str.indexOf('')); //returns 0
console.log(str.indexOf('Hello')); //returns 0
console.log(str.indexOf('hello')); //returns -1
console.log(str.indexOf('Hello ')); //returns -1
console.log(str.indexOf('o')); //returns 4
console.log(str.indexOf('o', 5)); //returns 8
console.log(str.indexOf('Hello', 5)); //returns -1
//search()
console.log(str.search(/Hello/)); //returns 0
console.log(str.search(/hello/)); //returns -1
console.log(str.search(/Hello /)); //returns -1
console.log(str.search(/HELLO/i)); //returns 0
console.log(str.search(/[A-Z]/g)); //returns 0
결론: 정규식을 써야하는 복잡한 문자열이 아니라면, indexOf()가 더 빠르고 사용이 편할 것이다.
Leave a comment