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 相关文章推荐
ExtJs使用总结(非常详细)
Mar 22 Javascript
jQuery实现设置、移除文本框默认值功能
Jan 13 Javascript
图解JavaScript中的this关键字
May 28 Javascript
省市联动效果的简单实现代码(推荐)
Jun 06 Javascript
JS实现淡入淡出图片效果的方法分析
Dec 20 Javascript
JS实现的简易拖放效果示例
Dec 29 Javascript
HTML5 js实现拖拉上传文件功能
Nov 20 Javascript
如何从零开始利用js手写一个Promise库详解
Apr 19 Javascript
json 带斜杠时如何解析的实现
Aug 12 Javascript
vue中使用element组件时事件想要传递其他参数的问题
Sep 18 Javascript
微信小程序实现多图上传
Jun 19 Javascript
JavaScript实现串行请求的示例代码
Sep 14 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
制作美丽的拉花
2021/03/03 冲泡冲煮
php中目录,文件操作详谈
2007/03/19 PHP
PHP上传图片进行等比缩放可增加水印功能
2014/01/13 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
2016/01/11 PHP
Zend Framework实现多文件上传功能实例
2016/03/21 PHP
3种方法轻松处理php开发中emoji表情的问题
2016/07/18 PHP
yii2.0整合阿里云oss上传单个文件的示例
2017/09/19 PHP
Bookmarklet实现启动jQuery(模仿 云输入法)
2010/09/15 Javascript
js中substr,substring,indexOf,lastIndexOf的用法小结
2013/12/27 Javascript
jquery实现弹出层遮罩效果的简单实例
2014/03/03 Javascript
js控制文本框只输入数字和小数点的方法
2015/03/10 Javascript
jQuery检查事件是否触发的方法
2015/06/26 Javascript
基于jQuery实现仿百度首页换肤背景图片切换代码
2015/08/25 Javascript
Bootstrap每天必学之按钮
2015/11/26 Javascript
javascript闭包功能与用法实例分析
2017/04/06 Javascript
WebSocket实现简单客服聊天系统
2017/05/12 Javascript
vue中前进刷新、后退缓存用户浏览数据和浏览位置的实例讲解
2018/09/21 Javascript
Node.js中读取TXT文件内容fs.readFile()用法
2018/10/10 Javascript
详解vue组件中使用路由方法
2019/02/12 Javascript
Python中pip安装非PyPI官网第三方库的方法
2015/06/02 Python
python pandas 组内排序、单组排序、标号的实例
2018/04/12 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
2019/04/11 Python
解决运行出现'dict' object has no attribute 'has_key'问题
2020/07/15 Python
Python 数据的累加与统计的示例代码
2020/08/03 Python
如何用Python提取10000份log中的产品信息
2021/01/14 Python
高级文秘工作总结的自我评价
2013/09/28 职场文书
医院办公室主任职责
2013/12/29 职场文书
学校运动会开幕演讲稿
2014/01/04 职场文书
英语生日邀请函
2014/01/23 职场文书
个人委托书范本汇总
2014/10/01 职场文书
2015年度个人教学工作总结
2015/05/20 职场文书
历史博物馆观后感
2015/06/05 职场文书
nginx配置proxy_pass中url末尾带/与不带/的区别详解
2021/03/31 Servers
对Golang中的FORM相关字段理解
2021/05/02 Golang
python单元测试之pytest的使用
2021/06/07 Python
Pandas搭配lambda组合使用详解
2022/01/22 Python