在我們前一篇文章中我們給大家介紹了indexof的使用詳解,相信小夥伴們對此都不陌生、indexof判斷字串是否包涵子字串時特別常用,正規不熟練同學的利器。今天我們就繼續跟大家介紹下JavaScript中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更省資源。
總結:
相信大家透過本文的學習對indexOf與search的差異有了進一步的了解、希望對你的工作有所幫助!
相關推薦:
######indexOf()使用方法以及與jQuery.inArray()的區別################# #以上是JavaScript中indexOf與search的差異詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!