您的位置是:网站首页>Javascript编程Javascript编程

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

少儿编程网2021-09-29 15:53:36Javascript编程 人已围观 来源:少儿编程 -用户投稿

简介在之前的文章《js怎么知道给定子串是不是存在》中,我们介绍了通过获取子串在字符串的第一次或最后一次出现位置的方法。这次我们加大难度,看看如何获取子串在字符串的所有出现位置。我们在之前的文章中了解到使用indexOf()和lastIndexOf()函数可以获取子串在第一次出现位置和最后一次出现位置;如

在之前的文章《js怎么知道给定子串是不是存在》中,我们介绍了通过获取子串在字符串的第一次或**后一次出现位置的方法。这次我们加大难度,看看如何获取子串在字符串的所有出现位置。20x少儿编程网-https://www.pxcodes.com

我们在之前的文章中了解到使用indexOf()和lastIndexOf()函数可以获取子串在第一次出现位置和**后一次出现位置;如果没有找到该子串,则返回-1。20x少儿编程网-https://www.pxcodes.com

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

利用这个可选的第二个参数start和循环语句,我们就可以计算给定子串(包含一个或多个字符)的全部出现位置。20x少儿编程网-https://www.pxcodes.com

首先看看使用indexOf()是怎么统计给定字符在字符串的所有出现位置20x少儿编程网-https://www.pxcodes.com

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结束。因此输出结果为:20x少儿编程网-https://www.pxcodes.com

20x少儿编程网-https://www.pxcodes.com

可以看出,给定字符“e”在字符串stringValue中一个出现了5次,因为字符串位置起始于 0,而不是 1,所以出现位置分别为3、24、32、35、52。20x少儿编程网-https://www.pxcodes.com

然后我们来看看使用lastIndexOf()是怎么统计给定字符在字符串的所有出现位置20x少儿编程网-https://www.pxcodes.com

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”。20x少儿编程网-https://www.pxcodes.com

看看输出结果:20x少儿编程网-https://www.pxcodes.com

20x少儿编程网-https://www.pxcodes.com

可以看出,获取到的给定字符“e”在字符串stringValue中所有出现位置是倒序的,顺序分别为:52、35、32、24、3。20x少儿编程网-https://www.pxcodes.com

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

以上就是js字符串学习之计算给定字符的全部出现位置的详细内容,更多请关注少儿编程网其它相关文章!20x少儿编程网-https://www.pxcodes.com

来源:php中文网20x少儿编程网-https://www.pxcodes.com


相关文章:

支持一下 ( )

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

      匿名评论
    • 评论
    人参与,条评论
    js字符串学习之计算给定字符的全部出现位置

微信公众号

免费视频教程

先知道