indexOf ()와 search ()의 차이점은 무엇입니까?
JavaScript가 상당히 새롭기 때문에 각각을 언제 사용해야하는지 알 수 없습니다.
누구든지 나를 위해 이것을 명확히 할 수 있습니까?
정규식이 필요한 경우을 사용하십시오 search()
. 그렇지 않으면 indexOf()
더 빨라질 것입니다.
indexOf
일반 하위 문자열을위한 것이고 search
정규 표현식을위한 것입니다.
search 함수 ( 한 설명은 여기 )는 정규 표현식을 사용하여보다 복잡한 패턴, 대소 문자를 구분하지 않는 문자열 등을 비교할 수 있으며 indexOf ( 한 설명은 여기 )는 단순히 리터럴 문자열과 일치합니다. 그러나 indexOf를 사용하면 시작 색인을 지정할 수도 있습니다.
주요 차이점은 검색에서 정규 표현식을 허용한다는 것입니다.
이 참조를 확인하십시오.
IndexOf ()-문자열 리터럴 또는 문자열 객체는 허용하지만 정규 표현식 은 허용 하지 않습니다 . 또한 0부터 시작하는 정수 값을 받아 검색을 시작합니다. 예 :
- "babyelephant".indexOf ( "e"); // 4를 준다
- "babyelephant".indexOf ( "e", 5); // 검색이 6 번째 또는 5 번째 인덱스에서 시작하면 6이됩니다.
- 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 와 검색 .
아래 예제는 라이브 데모 를 제공합니다 .
function FromSearch() {
var str = document.getElementById("demo").innerText;
var n = str.search("difference");
document.getElementById("Location").innerHTML = n;
}
function FromindexOf() {
var str = document.getElementById("demo").innerText;
var n = str.indexOf("difference");
document.getElementById("Location").innerHTML = n;
}
<p id="demo">Without a <a href='http://www.w3schools.com/js/js_regexp.asp'>regex</a>, there is no practical difference between <a href='http://www.w3schools.com/jsref/jsref_indexof.asp'>indexOf</a> and <a href='http://www.w3schools.com/jsref/jsref_search.asp'>search</a>
</p>
<button onclick="FromSearch()">From search</button>
<button onclick="FromindexOf()">From indexOf</button>
<p>Location of difference in the above sentence is:</p>
<mark id="Location"></mark>
참고 URL : https://stackoverflow.com/questions/354110/what-is-the-difference-between-indexof-and-search
'Programing' 카테고리의 다른 글
모범 사례? (0) | 2020.05.23 |
---|---|
주요 Java HTML 파서의 장단점은 무엇입니까? (0) | 2020.05.23 |
사전 키로 사용자 정의 유형의 객체 (0) | 2020.05.23 |
Eclipse Europa, Helios, Galileo의 차이점 (0) | 2020.05.23 |
인라인 블록 요소를 나머지 줄에 채우는 방법? (0) | 2020.05.23 |