[javascript] indexOf ()와 search ()의 차이점은 무엇입니까?

JavaScript가 상당히 새롭기 때문에 각각을 언제 사용해야하는지 알 수 없습니다.

누구든지 나를 위해 이것을 명확히 할 수 있습니까?



답변

정규식이 필요한 경우을 사용하십시오 search(). 그렇지 않으면 indexOf()더 빨라질 것입니다.


답변

indexOf일반 하위 문자열을위한 것이고 search정규 표현식을위한 것입니다.


답변

search 함수 ( 한 설명은 여기 )는 정규 표현식을 사용하여보다 복잡한 패턴, 대소 문자를 구분하지 않는 문자열 등을 비교할 수 있으며 indexOf ( 한 설명은 여기 )는 단순히 리터럴 문자열과 일치합니다. 그러나 indexOf를 사용하면 시작 색인을 지정할 수도 있습니다.


답변

주요 차이점은 검색에서 정규 표현식을 허용한다는 것입니다.

이 참조를 확인하십시오.


답변

IndexOf ()-문자열 리터럴 또는 문자열 객체는 허용하지만 정규 표현식 은 허용 하지 않습니다 . 또한 0부터 시작하는 정수 값을 받아 검색을 시작합니다. 예 :

  1. “babyelephant”.indexOf ( “e”); // 4를 준다
  2. “babyelephant”.indexOf ( “e”, 5); // 검색이 6 번째 또는 5 번째 인덱스에서 시작하면 6이됩니다.
  3. var m = / e /; “babyelephant”.indexOf (m); // 정규식을 허용하지 않으므로 -1을 지정합니다.

Search ()-문자열 리터럴 또는 문자열 객체와 정규식을 모두 허용합니다. 그러나 검색을 시작하는 색인을 허용하지 않습니다.


답변

indexOf () 및 search ()

  • 둘 다 공통

    i) 처음 검색된 값을 반환

    ii) 일치하는 것이 없으면 -1을 반환

    let str='Book is booked for delivery'
    str.indexOf('b')   // returns position 8
    str.search('b')    // returns position 8 

  • indexOf ()의 스페셜

    i) 검색 위치를 두 번째 인수로 지정할 수 있습니다

    str.indexOf('k')   // 3
    str.indexOf('k',4) // 11 (it start search from 4th position) 

  • 검색 특별 ()

검색 값은 정규식 일 수 있습니다

str.search('book') // 8
str.search(/book/i)  // 0   ( /i =case-insensitive   (Book == book)

참고


답변

검색에서 정규식과 일치하지만 오프셋이없는 것을 찾습니다. IndexOf는 리터럴을 사용하여 일치하지만 오프셋이 있습니다.

IndexOf

검색