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 相关文章推荐
csdn 博客中实现运行代码功能实现
Aug 29 Javascript
jQuery 自动增长的文本输入框实现代码
Apr 02 Javascript
用js来获取上传的文件名纯粹是为了美化而用
Oct 23 Javascript
js实现html table 行,列锁定的简单实例
Oct 13 Javascript
javascript入门之string对象【新手必看】
Nov 22 Javascript
[js高手之路]寄生组合式继承的优势详解
Aug 28 Javascript
解决VUE框架 导致绑定事件的阻止冒泡失效问题
Feb 24 Javascript
JS 实现发送短信验证码的“59秒后重新发送验证短信”功能
Aug 23 Javascript
Vue监听滚动实现锚点定位(双向)示例
Nov 13 Javascript
js校验开始时间和结束时间
May 26 Javascript
js节流防抖应用场景,以及在vue中节流防抖的具体实现操作
Sep 21 Javascript
基于Cesium绘制抛物弧线
Nov 18 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
全国FM电台频率大全 - 10 江苏省
2020/03/11 无线电
php 一元分词算法
2009/11/30 PHP
给大家分享几个常用的PHP函数
2017/01/15 PHP
PHP基于DOMDocument解析和生成xml的方法分析
2017/07/17 PHP
如何修改Laravel中url()函数生成URL的根地址
2017/08/11 PHP
dwr spring的集成实现代码
2009/03/22 Javascript
兼容多浏览器的iframe自适应高度(ie8 、谷歌浏览器4.0和 firefox3.5.3)
2009/11/04 Javascript
json格式化/压缩工具 Chrome插件扩展版
2010/05/25 Javascript
JavaScript类库D
2010/10/24 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
2014/07/18 Javascript
jQuery提交多个表单的小技巧
2014/07/27 Javascript
关于JS中match() 和 exec() 返回值和属性的测试
2016/03/21 Javascript
jQuery页面元素动态添加后绑定事件丢失方法,非 live
2016/06/16 Javascript
Bootstrap优化站点资源、响应式图片、传送带使用详解3
2016/10/14 Javascript
jquery鼠标悬停导航下划线滑出效果
2017/09/29 jQuery
微信小程序如何修改radio和checkbox的默认样式和图标
2019/07/24 Javascript
Auto.JS实现抖音刷宝等刷视频app,自动点赞,自动滑屏,自动切换视频功能
2020/05/08 Javascript
在antd4.0中Form使用initialValue操作
2020/11/02 Javascript
python在命令行下使用google翻译(带语音)
2014/01/16 Python
python实现unicode转中文及转换默认编码的方法
2017/04/29 Python
解决pycharm 误删掉项目文件的处理方法
2018/10/22 Python
python2和python3在处理字符串上的区别详解
2019/05/29 Python
pyqt5 从本地选择图片 并显示在label上的实例
2019/06/13 Python
解决python 文本过滤和清理问题
2019/08/28 Python
Django查询优化及ajax编码格式原理解析
2020/03/25 Python
Python计算指定日期是今年的第几天(三种方法)
2020/03/26 Python
Python如何执行精确的浮点数运算
2020/07/31 Python
入党申请人的自我鉴定
2013/12/01 职场文书
《临死前的严监生》教学反思
2014/02/13 职场文书
《风娃娃》教学反思
2014/04/19 职场文书
爱国口号
2014/06/19 职场文书
教师党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
信访维稳承诺书
2015/05/04 职场文书
2016年九九重阳节活动总结
2016/04/01 职场文书
JPA 通过Specification如何实现复杂查询
2021/11/23 Java/Android
ORACLE中dbms_output.put_line输出问题的解决过程
2022/06/28 Oracle