章节
问答
课签
笔记
评论
占位
占位

返回指定的字符串首次出现的位置

indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。

语法

stringObject.indexOf(substring, startpos)

参数说明:


说明:

1.该方法将从头到尾地检索字符串 stringObject,看它是否含有子串 substring。

2.可选参数,从stringObject的startpos位置开始查找substring,如果没有此参数将从stringObject的开始位置查找。

3.如果找到一个 substring,则返回 substring 的第一次出现的位置。stringObject 中的字符位置是从 0 开始的。

注意:1.indexOf() 方法区分大小写。

2.如果要检索的字符串值没有出现,则该方法返回 -1。

例如: 对 "I love JavaScript!" 字符串内进行不同的检索:

<script type="text/javascript">
  var str="I love JavaScript!"
  document.write(str.indexOf("I") + "<br />");
  document.write(str.indexOf("v") + "<br />");
  document.write(str.indexOf("v",8));
</script>

以上代码的输出:

0
4
9

任务

补充右边编辑器第8行,使用indexOf()方法,检索第二个字符o出现的位置。

?不会了怎么办

mystr.indexof("o",6)

||
1
2
<!DOCTYPE html>
<html>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
提交
重置代码
||

请验证,完成请求

由于请求次数过多,请先验证,完成再次请求

加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

邀请您关注公众号
关注后,及时获悉本课程动态

举报

0/150
提交
取消
全部 精华 我要发布

最新回答 / qq_慕标3164055
indexOf,这个O要大写

最新回答 / zhaofeng23
因为要取第二个"o"的位置,所以要从第一个"o"的位置往后数,第一个"o"的位置是4,所以这个起始位置要大于4,但必须小于7,因为7是第二个“o”的位置,所以写5、6都可以

最赞回答 / 星舟
<...图片...>你看看我这行不?

最赞回答 / 慕娘6283028
 var mystr="Hello World!"  var index = mystr.indexOf("o", mystr.indexOf("o") + 1<...code...>);  document.write("第二个出现o的位置:" +index); 

已采纳回答 / 慕姐8494960
你那样写显得太人工了一点吧,第一个位置居然是查出来的,个人认为,第一个位置应该也是代码获得的比较合理,如下var index = mystr.indexOf('o')  document.write(index);  document.write(mystr.indexOf("o",index + 1));先获得第一个o的位置index,再拿index+1作为第二次查找的起始位置,懂了麻烦采纳,回答问题需要动力?

已采纳回答 / 慕姐8494960
以后你写项目的时候当你配置请求路径的时候,通常生产环境,开发环境路径都是不一样的,这时候可以使用这个indexOf来区分环境,以便于切换环境。等你做项目你就会发现,你现在学的这些方法全是最基本的,最实用的,回答需要动力,明白了请采纳。我给你贴一段实例代码吧,以后你做项目会明白的,indexOf有很多用处的,根据项目需求具体使用。<...图片...>

最赞回答 / 慕盖茨6013945
好吧,document.write(mystr.indexOf("o",mystr.indexOf("o")+1));括号少写了一个。。。。

最新回答 / 旺仔窝窝头
从字符串中索引为“8”的那个字符开始检索子串”v“,注意字符串下标从0开始,也即从第9个字符开始检索。

最新回答 / 诸葛平云
首先代码就出现问题了mystr.indexOf()中Of是大小写的,你的是全小写,还有你第一次获取的位置如果直接用在第二次的位置上会出现重叠现象,导致两次的结果一样,所以要在第一次获取位置的基础上+1,也就是document.write("第二次位置:"+mystr.indexOf("o",sencond+1));这样就行了

已采纳回答 / 昨日诺言今日兑现
后面的参数是开始点,从6开始查,第一个出现的“o”是第7个字符;从7开始查也是如此

最赞回答 / 悠哉是第一生产力
indexOf()的第二个参数代表的是开始查询的位置mystr.indexOf("o")+1代表的我第一个查询到的"o"的下一个位置所以从这个位置开始,再进行查找,查到的肯定就是第二个"o"的位置

最赞回答 / Blake_793240122
列举各种常用内置函数,让你练练手,中间穿插日常应用情景。这样你到了高阶才不至于看不懂。不要眼高手低,手敲一遍吧

已采纳回答 / 慕粉4425227
mystr是个变量,这个变量是字符串,mystr.indexOf('o')表示‘o’在mystr中出现的位置,例如:mystr='Hello',mystr.indexOf('o')就是4,mystr.indexOf('o')+1就等于4+1=5;

最赞回答 / 慕桂英7306968
如果不考虑重叠子串的话比如说 原字符串是     AAAA你要检索 AA 你可以说它出现了2次(不考虑重叠的)也可以说他出现了 3次这种情况只要把原字符串按照子串 split一下 string.split(substring, n) 然后再按substring join一下取length就行了。如果考虑重叠情况的话 就两个for loop 对每个下标都看一下是否match substring 用一个 counter计数器看看什么时候到n
全部 我要发布
最热 最新
只看我的

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

账号登录 验证码登录

遇到问题
忘记密码

代码语言