根据字符返回位置
字符串对象提供了用于检索元素的属性和方法,具体如表1所示。
表1 字符串对象的常用属性和方法
成员 | 作用 |
---|---|
indexOf(searchValue) | 获取searchValue在字符串中首次出现的位置 |
lastIndexOf(searchValue) | 获取searchValue在字符串中最后出现的位置 |
为了让大家更加清楚地了解indexOf()和lastIndexOf()方法的使用,下面我们通过代码示例进行演示。
var str = 'HelloWorld';
str.indexOf('o'); // 获取“o”在字符串中首次出现的位置,返回结果:4
str.lastIndexOf('o'); // 获取“o”在字符串中最后出现的位置,返回结果:6
通过返回结果可以看出,位置从0开始计算,字符串第一个字符的位置是0,第2个字符为1,以此类推,最后一个字符的位置是字符串的长度减1。
接下来我们通过案例进行演示。要求在一组字符串中,找到所有指定元素出现的位置以及次数。字符串为 ' Hello World, Hello JavaScript '。示例代码如下。
1 var str = 'Hello World, Hello JavaScript';
2 var index = str.indexOf('o');
3 var num = 0;
4 while (index != -1) {
5 console.log(index); // 依次输出:4、7、17
6 index = str.indexOf('o', index + 1);
7 num++;
8 }
9 console.log('o出现的次数是:' + num); // o出现的次数是:3
上述代码中,第2行中需要先找到第一个o出现的位置。第3行代码设置o出现的次数初始值为0,第4行通过while语句判断indexOf返回值的结果,如果不是-1就继续往后进行查找,这是因为indexOf只能查找到第1个,所以后面的查找需要利用第2个参数来实现,给当前的索引index加1,从而实现继续查找。需要注意的是,字符串中的空格也会被当作一个字符来处理。