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 相关文章推荐
Angular用来控制元素的展示与否的原生指令介绍
Jan 07 Javascript
手机端转盘抽奖代码分享
Sep 10 Javascript
基于jquery实现省市联动特效
Dec 17 Javascript
简单介绍JavaScript数据类型之隐式类型转换
Dec 28 Javascript
javascript之IE版本检测超简单方法
Aug 20 Javascript
jQuery学习笔记——jqGrid的使用记录(实现分页、搜索功能)
Nov 09 Javascript
JavaScript实现二分查找实例代码
Feb 22 Javascript
javascript 缓冲运动框架的实现
Sep 29 Javascript
vue自定义全局组件(自定义插件)的用法
Jan 30 Javascript
详解React项目的服务端渲染改造(koa2+webpack3.11)
Mar 19 Javascript
详解element-ui设置下拉选择切换必填和非必填
Jun 17 Javascript
JS实现表单中点击小眼睛显示隐藏密码框中的密码
Apr 13 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 图像尺寸调整代码
2010/05/26 PHP
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
2014/06/12 PHP
PHP获取POST数据的几种方法汇总
2015/03/03 PHP
中高级PHP程序员应该掌握哪些技术?
2016/09/23 PHP
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
2016/12/14 PHP
php实现文件预览功能
2017/05/23 PHP
Yii2 如何在modules中添加验证码的方法
2017/06/19 PHP
PHP基于curl模拟post提交json数据示例
2018/06/22 PHP
Web Inspector:关于在 Sublime Text 中调试Js的介绍
2013/04/18 Javascript
JQ技术实现注册页面带有校验密码强度
2015/07/27 Javascript
理解javascript定时器中的单线程
2016/02/23 Javascript
AngularJS 视图详解及示例代码
2016/08/17 Javascript
Vue.js第一天学习笔记(数据的双向绑定、常用指令)
2016/12/01 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(一)
2017/05/11 Javascript
Vue + Vue-router 同名路由切换数据不更新的方法
2017/11/20 Javascript
vue中的面包屑导航组件实例代码
2019/07/01 Javascript
js验证账户名是否重复
2020/05/26 Javascript
vue 解决mintui弹窗弹起来,底部页面滚动bug问题
2020/11/12 Javascript
Python常用的内置序列结构(列表、元组、字典)学习笔记
2016/07/08 Python
python 列表,数组和矩阵sum的用法及区别介绍
2018/06/28 Python
如何在Python中实现goto语句的方法
2019/05/18 Python
python 的numpy库中的mean()函数用法介绍
2020/03/03 Python
查看已安装tensorflow版本的方法示例
2020/04/19 Python
ProBikeKit澳大利亚:自行车套件,跑步和铁人三项装备
2016/11/30 全球购物
阿提哈德航空官方网站:Etihad Airways
2017/01/06 全球购物
Expedia韩国官网:亚洲发展最快的在线旅游门户网站
2018/02/26 全球购物
室内设计专业个人的自我评价
2013/10/19 职场文书
区域总监的岗位职责
2013/11/21 职场文书
成龙洗发水广告词
2014/03/14 职场文书
土建施工员岗位职责
2014/07/16 职场文书
作弊检讨书范文
2015/05/06 职场文书
2015秋季运动会通讯稿
2015/07/18 职场文书
财务年终工作总结大全
2019/06/20 职场文书
Python基础 括号()[]{}的详解
2021/11/07 Python
MySQL三种方式实现递归查询
2022/04/18 MySQL
TaiShan 200服务器安装Ubuntu 18.04的图文教程
2022/06/28 Servers