• 技术文章 >web前端 >js教程

    indexOf 和 lastIndexOf 使用示例介绍_javascript技巧

    2016-05-16 16:37:57原创812
    indexOf 的用途是在一个字符串中寻找一个字的位置

    lastIndexOf 也是找字 , 它们俩的区别是前者从字符串头开始找,后者是从字符串末端开始找。

    一但指定的字被找到,就会返回这个字的当前的位置号码。如果没有找到就返回 -1.

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

    参数1是要寻找的字,必须是str,正则不行哦。

    此外它还接受第2个参数。Number类型, 这个让我们可以指定寻找的范围。

    var str = "//www.stooges.com.my/test/index.aspx123/";
    console.log(str.indexOf("//m.sbmmt.com/m/", 0)); //0 默认情况是 0
    console.log(str.lastIndexOf("//m.sbmmt.com/m/", 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) ? text.length + 1 : 0 - 1; 
    var loopTime = Math.abs(startIndex);
    for (var i = 0; i < loopTime ; i++) {
    ipos = (is_negative) ? 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("//m.sbmmt.com/m/", 3)); //20
    console.log(str.myIndexOf("//m.sbmmt.com/m/", -2)); //25 倒数第2个的位置
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:indexOf lastIndexOf
    上一篇:jQuery淡入淡出元素让其效果更为生动_jquery 下一篇:详解js闭包_基础知识
    Web大前端开发直播班

    相关文章推荐

    • 完全掌握JavaScript运行机制及原理• 一文浅析Angular中的响应式表单• 聊聊node中的fs模块、path模块• 浅析Angular中怎么用 Api 代理• 你能搞懂JS的this指向问题吗?看看这篇文章

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网