温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

js怎么计算给定字符的全部出现位置

发布时间:2021-08-16 18:04:00 来源:亿速云 阅读:106 作者:chen 栏目:web开发

本篇内容主要讲解“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结束。因此输出结果为:

js怎么计算给定字符的全部出现位置

可以看出,给定字符“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”。

看看输出结果:

js怎么计算给定字符的全部出现位置

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

到此,相信大家对“js怎么计算给定字符的全部出现位置”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

js
AI