js中字符串函數indexOf與search的區別


IndexOf()方法是用來判斷一個字符串是否存在於一個更長的字符串中。從長字符串左端到右端來搜索,如果存在該子字符串就返回它所處的位置(即索引)。如果在被搜索的字符串沒有找到要查找的字符串返回-1。注意,這里的位置應當填寫索引值。所有的字符串索引都是從零開始,第一個字符的位置就是0,終點位置就是字符串的長度減去1。

該方法等價於C語言中的strstr函數及Visual Basic語言中的inStr函數。這個方法也有一個相應的函數,即lastIndexOf(),從長字符串的右端搜索。

那么問題來了,search()方法也是同樣返回目標自字符串索引值的。indexOf()和search()有什么區別呢?為什么時候該使用它,什么時候該使用search()這個方法呢?

首先要明確search()的參數必須是正則表達式,而indexOf()的參數只是普通字符串。indexOf()是比search()更加底層的方法。

如果只是對一個具體字符串來查找,那么使用indexOf()的系統資源消耗更小,效率更高;如果是查找具有某些特征的字符串(比如查找以a開頭,后面是數字的字符串),那么indexOf()就無能為力,必須要使用正則表達式和search()方法了。

很多時候用indexOf()不是為了真的想知道子字符串的位置,而是想知道長字符串中沒有包含這個子字符串。如果返回索引值是-1,那么說明沒有:不等於-1,那么就是有。

所以一般情況下indexOf比search更省資源。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM