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 相关文章推荐
ie和firefox中img对象区别的困惑
Dec 27 Javascript
javascript利用控件对windows的操作实现原理与应用
Dec 23 Javascript
javascript禁用键盘功能键让右击及其他键无效
Oct 09 Javascript
基于JavaScript实现图片点击弹出窗口而不是保存
Feb 06 Javascript
Require.JS中的几种define定义方式示例
Jun 01 Javascript
Vue中建立全局引用或者全局命令的方法
Aug 21 Javascript
Angular CLI 安装和使用教程
Sep 13 Javascript
基于js中document.cookie全面解析
Sep 14 Javascript
Vue使用NPM方式搭建项目
Oct 25 Javascript
如何基于javascript实现贪吃蛇游戏
Feb 09 Javascript
JavaScript实现指定数量的并发限制的示例代码
Mar 10 Javascript
JavaScript小技巧带你提升你的代码技能
Sep 15 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
MySQL GBK→UTF-8编码转换
2007/05/24 PHP
PHP基础之运算符的使用方法
2013/04/28 PHP
PHP基于单例模式实现的数据库操作基类
2016/01/15 PHP
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
2016/02/23 PHP
详解php反序列化
2020/06/10 PHP
一个用javascript写的select支持上下键、首字母筛选以及回车取值的功能
2009/09/09 Javascript
js自定义事件及事件交互原理概述(二)
2013/02/01 Javascript
jquery 页面滚动到指定DIV实现代码
2013/09/25 Javascript
基于cookie实现zTree树刷新后展开状态不变
2017/02/28 Javascript
react-native之ART绘图方法详解
2017/08/08 Javascript
代码分析vue中如何配置less
2018/09/28 Javascript
jQuery实现的简单日历组件定义与用法示例
2018/12/24 jQuery
[28:42]Ti4正赛VG vs NEWBEE1
2014/07/19 DOTA
[25:45]2018DOTA2亚洲邀请赛4.5SOLO赛 Sylar vs Paparazi
2018/04/06 DOTA
[03:01]完美世界DOTA2联赛PWL S2 集锦第二期
2020/12/03 DOTA
python使用webbrowser浏览指定url的方法
2015/04/04 Python
理解Python中函数的参数
2015/04/27 Python
Python中的time模块与datetime模块用法总结
2016/06/30 Python
Python标准库之itertools库的使用方法
2017/09/07 Python
python数据结构之线性表的顺序存储结构
2018/09/28 Python
在Django中URL正则表达式匹配的方法
2018/12/20 Python
Python下简易的单例模式详解
2019/04/08 Python
python线程定时器Timer实现原理解析
2019/11/30 Python
解决python web项目意外关闭,但占用端口的问题
2019/12/17 Python
pandas创建DataFrame的7种方法小结
2020/06/14 Python
Sephora丝芙兰马来西亚官方网站:国际化妆品购物
2018/03/15 全球购物
编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串
2014/01/07 面试题
管理信息系学生的自我评价
2014/01/11 职场文书
施工协议书范本
2014/04/22 职场文书
学校安全防火方案
2014/06/07 职场文书
生物科学专业自荐书
2014/06/20 职场文书
社会发展项目建议书
2014/08/25 职场文书
react 项目中引入图片的几种方式
2021/06/02 Javascript
Mysql InnoDB 的内存逻辑架构
2022/05/06 MySQL
小喇叭开始广播了! 四十多年前珍贵老照片
2022/05/09 无线电
python数字图像处理:图像的绘制
2022/06/28 Python