首頁 > web前端 > js教程 > indexOf 和 lastIndexOf 使用範例介紹_javascript技巧

indexOf 和 lastIndexOf 使用範例介紹_javascript技巧

WBOY
發布: 2016-05-16 16:37:57
原創
1759 人瀏覽過

indexOf 的用途是在一個字串中尋找一個字的位置

lastIndexOf 也是找字 , 它們兩個的差別是前者從字串頭開始找,後者是從字串末端開始找。

一但指定的字被找到,就會回傳這個字的目前的位置號碼。如果沒有找到就回傳 -1.

var str = "//www.stooges.com.my/test/index.aspx123/";
console.log(str.indexOf("/")); //0
console.log(str.lastIndexOf("/")); //39

登入後複製

參數1是要尋找的字,必須是str,正規不行哦。

此外它也接受第2個參數。 Number型, 這個讓我們可以指定要尋找的範圍。

var str = "//www.stooges.com.my/test/index.aspx123/";
console.log(str.indexOf("/", 0)); //0 默认情况是 0
console.log(str.lastIndexOf("/", str.length)); //39 默认情况是 str.length
登入後複製

兩個方法的控制是不同方向的 。

假設 indexOf 設定 10 , 那麼找出範圍是 從10到str.length(字末)

lastIndexOf 設定 10 的話 , 找出範圍會是 從10到 0 (字首)

這個要注意了。

ps : 設定成負數例如 -500 ,會有奇怪現象,我自己搞不懂 = = " ;

有時我們會希望指定找第n個.那麼我們就透過上面的方法來實現了。

如 :

String.prototype.myIndexOf = function (searchValue, startIndex) { 
var text = this;
startIndex = startIndex || 1; 
var is_negative = startIndex < 0;
var ipos = (is_negative) &#63; text.length + 1 : 0 - 1; 
var loopTime = Math.abs(startIndex);
for (var i = 0; i < loopTime ; i++) {
ipos = (is_negative) &#63; text.lastIndexOf(searchValue, ipos - 1) : text.indexOf(searchValue, ipos + 1);
if (ipos == -1) break;
}
return ipos;
}
登入後複製
var str = "//www.stooges.com.my/test/index.aspx123/";
console.log(str.myIndexOf("/", 3)); //20
console.log(str.myIndexOf("/", -2)); //25 倒数第2个的位置
登入後複製
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板