首页前端开发JavaScriptJS字符串学习之计算给定字符的全部出现位置

JS字符串学习之计算给定字符的全部出现位置

时间2024-01-30 04:20:02发布访客分类JavaScript浏览512
导读:收集整理的这篇文章主要介绍了JS字符串学习之计算给定字符的全部出现位置,觉得挺不错的,现在分享给大家,也给大家做个参考。在之前的文章《js怎么知道给定子串是不是存在》中,我们介绍了通过获取子串在字符串的第一次或最后一次出现位置的方法。这次我...
收集整理的这篇文章主要介绍了JS字符串学习之计算给定字符的全部出现位置,觉得挺不错的,现在分享给大家,也给大家做个参考。在之前的文章《js怎么知道给定子串是不是存在》中,我们介绍了通过获取子串在字符串的第一次或最后一次出现位置的方法。这次我们加大难度,看看如何获取子串在字符串的所有出现位置。

我们在之前的文章中了解到使用indexOf()和lastIndexOf()函数可以获取子串在第一次出现位置和最后一次出现位置;如果没有找到该子串,则返回-1。

而这两个函数都可接收可选的第二个参数start,值只能是一个整数,表示从字符串中的哪个位置开始搜索,取值范围是 0 ~ length-1。lastIndexOf()如果指定了start参数,则在一个字符串中的指定位置从后向前搜索。

利用这个可选的第二个参数start和循环语句,我们就可以计算给定子串(包含一个或多个字符)的全部出现位置。

首先看看使用indexOf()是怎么统计给定字符在字符串的所有出现位置

VAR stringValue = "Lorem ipsum dolor sIT amet, consectetur adipisicing elit";
    var positions = new Array();
    var pos = stringValue.indexOf("e");
    while(pos >
 -1){
    	positions.push(pos);
      //将出现位置赋给数组	pos = stringValue.indexOf("e",pos + 1);
  //从给定字符出现位置的后一位开始查找}
    console.LOG(positions);
    //"3,24,32,35,52"

分析:先使用indexOf("e")获取第一次出现位置并赋值给变量pos;然后使用while语句通过循环调用indexOf(),不断将查找起始位置设置为“pos + 1”,从给定字符出现位置pos的后一位开始查找,获取下一个出现位置;直到查找不到,返回-1结束。因此输出结果为:

可以看出,给定字符“e”在字符串stringValue中一个出现了5次,因为字符串位置起始于 0,而不是 1,所以出现位置分别为3、24、32、35、52。

然后我们来看看使用lastIndexOf()是怎么统计给定字符在字符串的所有出现位置

var stringValue = "Lorem ipsum dolor sit amet, consectetur adipisicing elit";
    var positions = new Array();
    var pos = stringValue.lastIndexOf("e");
    while(pos >
 -1){
    	positions.push(pos);
    	pos = stringValue.lastIndexOf("e",pos - 1);
}
    console.log(positions);
    //"3,24,32,35,52"

分析:使用lastIndexOf()获取所有出现位置其实和使用indexOf()差不多,只不过因为lastIndexOf()返回的是最后一次的出现位置,所以,每次循环,我们都要将查找的起始位置设置为“pos - 1”。

看看输出结果:

可以看出,获取到的给定字符“e”在字符串stringValue中所有出现位置是倒序的,顺序分别为:52、35、32、24、3。

好了,就说到这里了,有需要的可以看:javascript高级教程

以上就是JS字符串学习之计算给定字符的全部出现位置的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

js字符串

若转载请注明出处: JS字符串学习之计算给定字符的全部出现位置
本文地址: https://pptw.com/jishu/592032.html
JS字符串学习之巧用函数来连接多个字符串 javascript指定元素的末尾索引该如何返回

游客 回复需填写必要信息