JS中的indexOf和lastIndexOf

转载 2013年12月02日 17:16:03

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等的用法

js中substr,substring,indexOf,lastIndexOf等的用法 1.substr substr(start,length)表示从start位置开始,截取length长度的字符...
  • fb408487792
  • fb408487792
  • 2014年11月19日 10:52
  • 2134

js中,indexOf() lastIndexOf()区别

输入字符串: 找字符串:从前找从后找    function $(id){return document.getElementById(id);} $("btn1").onclick = f...
  • sunling112
  • sunling112
  • 2016年11月30日 09:38
  • 583

Java中的String中的substring、indexof()、lastindexof()和split

1.语法如下 String.split(sourceStr,maxSplit) String.split(sourceStr) 参数说明:sourceStr是被分割的字符串,maxSplit是最...
  • u012898667
  • u012898667
  • 2014年11月27日 09:48
  • 4007

小结indexOf()、lastIndexOf()位置方法

ECMAScipt5为数组实例添加了两个位置方法:indexOf()和lastIndexOf()。这两个方法的共同点是都接收2个参数:要查找的项和(可选的)表示查找起点位置的索引。不同的是indexO...
  • natalie86
  • natalie86
  • 2015年03月13日 10:52
  • 2712

java中substring和indexof() 和lastindexof()

java中substring和indexof() 和lastindexof() str=str.substring(int beginIndex);截取掉str从首字母起长度为beginInde...
  • u014368030
  • u014368030
  • 2015年06月30日 14:43
  • 2361

java学习--Java 中 subString(),indexof(),lastindexof()的用法

java中substring和indexof() 和lastindexof() str=str.substring(int beginIndex);截取掉str从首字母起长度为beginIndex的...
  • jbfsdzpp
  • jbfsdzpp
  • 2014年09月26日 20:56
  • 1342

【解决】js中ie8下不识别indexOf的解决办法

把一下代码放在你的indexOf方法的上面: if (!Array.prototype.indexOf){ Array.prototype.indexOf = function(...
  • xb12369
  • xb12369
  • 2014年03月10日 15:07
  • 10883

mysql 实现 lastindexof 的方法

前提:需要了解几个mysql的函数 hans
  • Java_HYL
  • Java_HYL
  • 2014年10月16日 17:19
  • 5986

js中indexof详解

String.IndexOf 方法 (Char, [startIndex], [count])     报告指定字符在此实例中的第一个匹配项的索引。搜索从指定字符位置开始,并检查指定数量的字符...
  • ldl22847
  • ldl22847
  • 2011年11月28日 11:35
  • 15033

str.lastIndexOf "is not a function" javascript

刷新页面后,突然报出str.lastIndexOf "is not a function" javascript ,首页检查发现HTML代码,CSS代码,JS代码 没有遇到明显的错误,由于报出的错误是...
  • qq_27425537
  • qq_27425537
  • 2017年02月27日 10:34
  • 367
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JS中的indexOf和lastIndexOf
举报原因:
原因补充:

(最多只允许输入30个字)