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 相关文章推荐
js 禁用浏览器的后退功能的简单方法
Dec 10 Javascript
JS如何将UTC格式时间转本地格式
Sep 04 Javascript
jQuery 获取和设置select下拉框的值实现代码
Nov 08 Javascript
jQuery中before()方法用法实例
Dec 25 Javascript
vue,angular,avalon这三种MVVM框架优缺点
Apr 27 Javascript
jQ处理xml文件和xml字符串的方法(详解)
Nov 22 Javascript
Vue.js+Layer表格数据绑定与实现更新的实例
Mar 07 Javascript
AngularJS自定义过滤器用法经典实例总结
May 17 Javascript
angular-tree-component的使用详解
Jul 30 Javascript
对layui数据表格动态cols(字段)动态变化详解
Oct 25 Javascript
React中使用UMEditor的方法示例
Dec 27 Javascript
vue使用axios实现excel文件下载的功能
Jul 16 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的简易冒泡法代码分享
2012/08/28 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
2015/12/17 PHP
PHP表单数据写入MySQL数据库的代码
2016/05/31 PHP
PHP实现的装箱算法示例
2018/06/23 PHP
phpQuery采集网页实现代码实例
2020/04/02 PHP
读jQuery之四(优雅的迭代)
2011/06/20 Javascript
jquery入门—访问DOM对象方法
2013/01/07 Javascript
JS生成不重复随机数组的函数代码
2014/06/10 Javascript
js实现按钮控制图片360度翻转特效的方法
2015/02/17 Javascript
jQuery实现左右切换焦点图
2015/04/03 Javascript
javascript制作幻灯片(360度全景图片)
2015/07/28 Javascript
跟我学习javascript的prototype原型和原型链
2015/11/18 Javascript
基于canvas实现的绚丽圆圈效果完整实例
2016/01/26 Javascript
基于jquery实现轮播特效
2016/04/22 Javascript
jquery自动补齐功能插件flexselect用法示例
2016/08/06 Javascript
AngularJS中指令的四种基本形式实例分析
2016/11/22 Javascript
JQuery Dialog对话框 不能通过Esc关闭的原因分析及解决办法
2017/01/18 Javascript
深入了解JavaScript代码覆盖
2019/06/13 Javascript
[01:06:43]完美世界DOTA2联赛PWL S3 PXG vs GXR 第二场 12.19
2020/12/24 DOTA
再谈Python中的字符串与字符编码(推荐)
2016/12/14 Python
Python中异常重试的解决方案详解
2017/05/05 Python
Python基于Tkinter编写crc校验工具
2020/05/06 Python
html5 Canvas画图教程(8)—canvas里画曲线之bezierCurveTo方法
2013/01/09 HTML / CSS
Herve Leger官网:标志性绷带连衣裙等
2018/12/26 全球购物
前台文员岗位职责及工作流程
2013/11/19 职场文书
幼儿园安全检查制度
2014/01/30 职场文书
《挑山工》的教学反思
2014/02/16 职场文书
霸王洗发水广告词
2014/03/14 职场文书
电大毕业个人生自我鉴定
2014/03/26 职场文书
维修工先进事迹
2014/05/29 职场文书
企业优秀团员事迹材料
2014/08/20 职场文书
2014年世界艾滋病日宣传活动总结
2014/11/18 职场文书
求职信内容一般写什么?
2015/03/20 职场文书
运动会报道稿大全
2015/07/23 职场文书
使用springboot暴露oracle数据接口的问题
2021/05/07 Oracle
Python打包exe时各种异常处理方案总结
2021/05/18 Python