在JavaScript中,indexOf()和search()之间有什么区别?

时间:2008-12-09 20:25:00

标签: javascript string

作为JavaScript的新手,我无法辨别何时使用这些内容。

有人可以帮我澄清这个吗?

8 个答案:

答案 0 :(得分:190)

如果您需要正则表达式,请使用search()。否则,indexOf()会更快。

答案 1 :(得分:31)

indexOf用于普通子串,search用于正则表达式。

答案 2 :(得分:14)

搜索函数(one description here)采用正则表达式,允许您匹配更复杂的模式,不区分大小写的字符串等,而indexOf(one description here)只匹配文字字符串。但是,indexOf还允许您指定起始索引。

答案 3 :(得分:7)

我认为主要区别在于搜索接受正则表达式。

检查此参考:

答案 4 :(得分:4)

IndexOf() - 它接受字符串文字或字符串对象,但不是正则表达式。它还接受从零开始的整数值来开始搜索,例如:

  1. " babyelephant" .indexOf(" E&#34); //给你4个
  2. " babyelephant" .indexOf(" E",5); //给你6作为搜索 从第6位或第5位开始。
  3. var m = / e /; " babyelephant" .indexOf(米); //给出-1,因为它没有 接受正则表达式。
  4. Search() - 接受字符串文字或字符串对象和正则表达式。但它并没有接受索引来开始搜索。

答案 5 :(得分:2)

搜索发现它与正则表达式匹配,但没有偏移量。 IndexOf使用文字匹配,但有一个偏移量。

IndexOf

Search

答案 6 :(得分:1)

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) 
    

  • 特殊于search()

搜索值可以是正则表达式

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

reference

答案 7 :(得分:-1)

没有regexindexOfsearch之间没有实际差异。

以下示例提供了实时demo

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>