indexOf() 方法可返回某個指定的字符串值在字符串中首次出現的位置,若是沒有找到返回-1。
語法:正則表達式
stringObject.indexOf(searchvalue,fromindex)
說明:
該方法將從頭至尾地檢索字符串stringObject,看它是否含有子串searchvalue。開始檢索的位置在字符串的fromindex處。若是沒有fromindex參數則從字符串的開頭檢索。若是找到一個searchvalue,則返回searchvalue的第一次出現的位置。stringObjec中的字符串位置是從0開始的。
注意事項
indexOf()方法對大小寫敏感。若是要檢所的字符串值沒有檢索到,則返回-1。spa
var str = "hello world"; console.log(str.indexOf("hello")); ====>0 console.log(str.indexOf("World")); ====>-1 console.log(str.indexOf("world")); ====>6
search方法用於檢索字符串中指定的子字符串,活檢索與正則表達式相匹配的子字符串。若是沒有找到,返回-1。
語法code
說明
search() 方法不執行全局匹配,它將忽略標誌 g。它同時忽略 regexp 的 lastIndex 屬性,而且老是從字符串的開始進行檢索,這意味着它老是返回 stringObject 的第一個匹配的位置。regexp
注意事項
search() 方法對大小寫敏感!blog
var str="hello World"; console.log(str.search(/World/)); ====>6 console.log(str.search(/world/)); ====>-1 console.log(str.search(/world/i); ====>6
拋磚引玉:search()方法也是一樣返回目標自字符串索引值的。indexOf()和search()有什麼區別呢?爲何時候該使用它,何時該使用search()這個方法呢?索引
首先要明確search()的參數必須是正則表達式,而indexOf()的參數只是普通的字符串。indexOf()是比search()更加底層的方法。圖片
若是隻是兌一個具體字符串來茶渣檢索,那麼使用indexOf()的系統資源消耗更小,效率更高;若是查找具備某些特徵的字符串(例如查找以a開頭,後面是數字的字符串),那麼indexOf()就無能爲力,必需要使用正則表達式和search()方法了。資源
大可能是時候用indexOf()不是爲了真的想知道子字符串的位置,而是想知道長字符串中有沒有包含這個子字符串。若果返回索引爲-1,那麼說明沒有,反之則有。字符串