当前位置: 首页 > news >正文

JavaScript(JS)的indexOf和lastIndexOf函数全解析

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=12而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编程,如果函数名大小写写错的话,函数颜色是黑色,写对的话则会变成另外一种颜色。

以上实例均亲自测试通过,特此声明,有笔误之处欢迎指正!

http://www.xdnf.cn/news/848215.html

相关文章:

  • mydisktest测试软件,MyDiskTest
  • 尤雨溪-基本介绍
  • 你想要的系列:网络请求框架OkHttp3全解系列 - (一)OkHttp的基本使用
  • Ubuntu操作系统
  • 三十分钟学会SCALA
  • http状态码301和302详解及区别
  • 量化交易是什么?
  • 《MFC 学习笔记》 1 —— 窗口
  • 史上最详细sqlmap入门教程
  • 【Git】git常用命令大全(初学者必看!!最强详解!!)
  • CSRF攻击原理介绍和利用
  • Simulink 环境基础知识(九)--指定模块属性
  • 获取传感器温度-cpu 温度篇
  • yml 简介(springboot 必备基础,小白入门)
  • Android View 的scroll相关方法属性 以及Scroller弹性滑动原理
  • SVM通俗详解
  • 一文教你搞懂python函数装饰器(wrapper)
  • VPC是什么,VPC详解
  • AST入门与反混淆初体验
  • 史上最全Fragment介绍,包括fragment的定义,生命周期,用法
  • 详解nc命令
  • 各种GAN原理总结及对比
  • Linux命令(11)之chown
  • 别再问别人了,这是小白都能懂的拓扑图指南
  • 「NTFS:让你的硬盘更安全、更高效!」NTFS文件系统详解,
  • iperf3主页官方信息
  • 快速排序的三种方式以及快排的优化
  • CTF-密码学基础
  • Sonar简介及使用
  • nslookup命令详解