JS中的indexOf和lastIndexOf是处理字符串的一个非常好用的函数,下面对它们的定义、用法、注意事项以及使用建议分别作介绍。
1、strObj.indexOf(subString[, startIndex])
功能:返回源字符串内第一次出现指定子字符串的首个字符在源字符串中的索引值(源字符串内第n个字符的索引值为n-1),是整数。
参数含义:
strObj是源字符串,必选项。
subString是在源字符串对象中查找的子字符串,必选项。
startIndex是开始索引值,indexOf函数是从源字符串的索引值为startIndex的字符(即第startIndex+1个字符)开始查找,可选项。省略时,从源字符串索引值为0的字符(即第1个字符)开始查找。
实例分析:
用法1(不指定startIndex值):var i="huoshandao.com".indexOfOf("a"):则i=5
相当于var i="huoshandao.com".indexOf("a",0)
用法2(指定startIndex值):var i="huoshandao.com".indexOf("a",6):则i=8
提示:可以用alert(i);语句测试结果,以下例子也一样。
注意事项
1)strObj既可以是字符串,也可以是字符串变量。
[例子]
strObj为字符串:var i="huoshandao.com".indexOf("."):
strObj为字符串变量:var str="huoshandao.com";var i=str.indexOf(".");
2)subString不能为空字符串,如果为空字符串,返回值为0,但可以是空格。
[例子]
subString为空字符串:var i="huo shan dao".indexOf(""):则i=0
subString为空格字符串:var i="huo shan dao".indexOf(" "):则i=3
3)第1个字符的startIndex值是0,是最小索引值;第2个字符的startIndex值是1;最后一个字符的startIndex值则是源字符串长度减1,是最大索引值。
4)如果没有找到子字符串,则返回 -1。
[例子]
var i="huoshandao.com".indexOf("huosan"):则i=-1
5)如果startIndex是负数,则相当于startIndex等于0的情况。如果它大于最大索引值,则相当于startIndex等于最大索引值的情况。
[例子]
startIndex为负数: var i="huoshandao.com".indexOf(".",-3);则i=10
与var i="huoshandao.com".indexOf(".",0);结果一样
startIndex大于等于字符串长度:var i="huoshandao.com_".indexOf("_",16);则i=14
与var i="huoshandao.com_".indexOf("_",14);结果一样
2、strObj.lastIndexOf(subString[, startIndex])
indexOf函数是从左向右查找,但实际应用中我们有时想得到从右向左出现某个字符或字符串的首个字符索引值,针对这种情况,JS给出另外一个函数lastIndexOf来解决这个问题,使用方法和indexOf相似,只是它从右向左查找而已,具体就不再重复,简单举几个例子,和indexOf作比较:
例1:var i="huo.shan.dao.com".lastIndexOf(".");则i=10而var i="huo.shan.dao.com".indexOf(".");的i=3
例2:var i="huoshandao.com_".lastIndexOf("_",16);则i=-1而var i="huoshandao.com_".indexOf("_",16);则i=14
3、使用建议
为了避免出乎意料的结果,除非有特殊用途,建议遵循以下原则:
1、startIndex为非负数,并且不大于最大索引值。如果startIndex是变量,要先判断其值是否在这个范围内。
2、如果子字符串subString是变量的话,要先判断其是否为空再使用indexOf或lastIndexOf函数。
3、输入子字符串时要特别注意全角字符和半角字符的区别。
4、注意indexOf和lastIndexOf里面的大小写,JS对大小写非常敏感。建议用Dreamweaver编程,如果函数名大小写写错的话,函数颜色是黑色,写对的话则会变成另外一种颜色。
以上实例均亲自测试通过,特此声明,有笔误之处欢迎指正!
分享到:
相关推荐
js中substr,substring,indexOf,lastIndexOf的用法小结.docx
主要介绍了JavaScript中的indexOf()和lastIndexOf()方法使用实例,是JS入门学习中的基础知识,有需要的朋友可以参考下。
主要介绍了js中substr,substring,indexOf,lastIndexOf,split,replace的用法详解的相关资料,需要的朋友可以参考下
js中substr,substring,indexOf,lastIndexOf等的用法 1.substrsubstr(start,length)表示从start位置开始,截取length长度的字符串。 var src=”images/off_1.png”;alert(src.substr(7,3)); 弹出值为:off ...
INSTR的第三个参数为1时,实现的是indexOf功能。... 您可能感兴趣的文章:asp.net的IndexOf,LastIndexOf,IndexOfAny和LastIndexOfAny的用法javascript Split方法,indexOf方法、lastIndexOf 方法和subst
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
Split方法: 以下程序例子实现了split和整数字符串互转的用法。。。 [removed] function evil() { var toint=parseInt(“123”);//字符串转换成整形 var intvalue=123; var tostr=intvalue.toString();//类型转换成...
indexOf() 和 lastIndexOf() 是js的用法,与jquery是无关的,所有直接用原生js就可以了。indexOf() 和 lastIndexOf() 方法返回的都是指定的子串在另一个字符串中的位置,如果没有找不到子串,则返回 -1。 这两个方法...
var index1 = a.indexOf("l"); //index1 = 2 var index2 = a.indexOf("l",3); //index2 = 3 charAt 返回指定位置的字符。 var get_char = a.charAt(0); //get_char = "h" lastIndexOf 返回字符串中一个子串最后一处...
1.indexOf和lastIndexOf方法: 因为IE7在数组对象上使用indexOf会报错,所以需要重写一个兼容性的。 代码如下: Array.prototype.lastIndexOf(item,index){ var n = this.length,i = (index==null||index>n-1)?n-1...
下面小编就为大家带来一篇对象不支持indexOf属性或方法的解决方法(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
传统上javasc提供了indeof的方法用来确定一个字符串是否包含一个字符串,但es6有提供新的方法。 1.首先我们回顾一下传统的indexof方法 indexof()方法可以判断一个字符串是否包含另一...注:lastIndexOf和fistIndexOf与
缓冲缓冲指数 这是NodeJS 4.0中引入的和Buffer#lastIndexOf的polyfill。例子require ( "buffer-indexof-polyfill" ) ;new Buffer ( "buffer" ) . indexOf ( "uff" ) // return 1new Buffer ( "buffer" ) . indexOf ...
资源名称:JS基础帮助文档 中文WORD版内容简介:Javascript提供了在字符串中查找子串的函数indexOf()、lastIndexOf()、search(),还提供了字符串的替换函数replace(),而这些函数没有在数组对象Array中实现。...
indexOf方法返回给定元素在数组中第一次出现的位置,返回结果是匹配开始的位置。如果没有出现则返回-1 var arr = [1,1,2,2,3,3,4,4]; var newArr = []; for(var i=0,len=arr.length;i<len;i++){ if(newArr.index...
indexOf(searchValue) 方法 获取searchValue在字符串中首次出现的位置 lastIndexOf(searchValue) 方法 获取searchValue在字符串中最后出现的位置 substring(start[, end]) 方法 截取从start位置到end位置之间的一个...