indexOf 和 lastIndexOf 使用示例介绍


Posted in Javascript onSeptember 02, 2014

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) ? 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("/", 3)); //20
console.log(str.myIndexOf("/", -2)); //25 倒数第2个的位置
Javascript 相关文章推荐
javascript中的parseInt和parseFloat区别
Jul 12 Javascript
js 时间函数应用加、减、比较、格式转换的示例代码
Aug 23 Javascript
JS和JQUERY获取页面大小,滚动条位置,元素位置(示例代码)
Dec 14 Javascript
javascript包装对象实例分析
Mar 27 Javascript
通过扫描二维码打开app的实现代码
Nov 10 Javascript
详解微信小程序开发之——wx.showToast(OBJECT)的使用
Jan 18 Javascript
JavaScript闭包_动力节点Java学院整理
Jun 27 Javascript
JS+HTML实现的圆形可点击区域示例【3种方法】
Aug 01 Javascript
微信小程序出现wx.getLocation再次授权问题的解决方法分析
Jan 16 Javascript
node.js ws模块搭建websocket服务端的方法示例
Apr 25 Javascript
vue父子组件通信的高级用法示例
Aug 29 Javascript
详解 TypeScript 枚举类型
Nov 02 Javascript
jquery实现个人中心导航菜单效果和美观都非常不错
Sep 02 #Javascript
JavaScript判断文件上传类型的方法
Sep 02 #Javascript
JavaScript中九种常用排序算法
Sep 02 #Javascript
事件委托与阻止冒泡阻止其父元素事件触发
Sep 02 #Javascript
解决jquery版本冲突的有效方法
Sep 02 #Javascript
ajaxFileUpload.js插件支持多文件上传的方法
Sep 02 #Javascript
引用其它js时如何同时处理多个window.onload事件
Sep 02 #Javascript
You might like
解析php如何将日志写进syslog
2013/06/28 PHP
PHP使用内置dir类实现目录遍历删除
2015/03/31 PHP
Laravel中10个有用的用法小结
2019/05/06 PHP
ext for eclipse插件安装方法
2008/04/27 Javascript
JQUERY复选框CHECKBOX全选,取消全选
2008/08/30 Javascript
为调试JavaScript添加输出窗口的代码
2010/02/07 Javascript
eval的两组性能测试数据
2012/08/17 Javascript
通过jQuery源码学习javascript(二)
2012/12/27 Javascript
JS按回车键实现登录的方法
2014/08/25 Javascript
jQuery幻灯片带缩略图轮播效果代码分享
2015/08/17 Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
2016/01/08 Javascript
使用node+vue.js实现SPA应用
2016/01/28 Javascript
BootStrap扔进Django里的方法详解
2016/05/13 Javascript
jQuery DataTables插件自定义Ajax分页实例解析
2020/04/28 Javascript
Backbone View 之间通信的三种方式
2016/08/09 Javascript
JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf()
2016/08/11 Javascript
js获取元素的标签名实现方法
2016/10/08 Javascript
jQuery实现的手动拖动控制进度条效果示例【测试可用】
2018/04/18 jQuery
js实现敏感词过滤算法及实现逻辑
2018/07/24 Javascript
JavaScript实现拖动对话框效果的实现代码
2020/10/12 Javascript
python编写爬虫小程序
2015/05/14 Python
Python OpenCV获取视频的方法
2018/02/28 Python
Python实现按照指定要求逆序输出一个数字的方法
2018/04/19 Python
python3.7.0的安装步骤
2018/08/27 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
2020/02/17 Python
Django-migrate报错问题解决方案
2020/04/21 Python
基于Python的Jenkins的二次开发操作
2020/05/12 Python
Python-split()函数实例用法讲解
2020/12/18 Python
MVC的各个部分都有那些技术来实现?如何实现?
2016/04/21 面试题
实习评语
2013/12/16 职场文书
小学生开学感言
2014/02/28 职场文书
学院党的群众路线教育实践活动第一阶段情况汇报
2014/10/25 职场文书
党校学习党性分析材料
2014/12/19 职场文书
教师节座谈会主持词
2015/07/03 职场文书
《牧场之国》教学反思
2016/02/22 职场文书
CSS实现九宫格布局(自适应)的示例代码
2022/02/12 HTML / CSS