梳理了一下 indexOf() 与 lastIndexOf() 的区别和使用:
var str = 'xxa xxa xxax'; //不带参数 var firstA1 = str.indexOf('a'); firstA1 = firstA1 + 1; //默认计算的位数实际是到a的前一位,所以+1才是a的所处位置 var endA1 = str.lastIndexOf('a') endA1 = endA1 + 1; //同上 //带参数 var firstA2 = str.indexOf('a',5); firstA2 = firstA2 + 1; //默认计算的位数实际是到a的前一位,所以+1才是a的所处位置 var endA2 = str.lastIndexOf('a',7) endA2 = endA2 + 1; //同上 console.log('字符串总长度是>>>>>>>>>>' + str.length); console.log('第一个a字符,在总长度中的位置是>>>>>>>>>>' + firstA1); //输出3 console.log('最后一个a字符,在总长度中的位置是>>>>>>>>>>' + endA1); //输出11 console.log('字符串的前5位之后,第一个a在总长度中的位置是>>>>>>>>>>' + firstA2); //输出7 console.log('字符串的前7位之内,最后一个a在总长度中的位置是>>>>>>>>>>' + endA2); //输出7
注意:
- 1. indexOf('a', 5) 查找的是字符串前5位之后的第一个a
- 2. lastIndexOf('a', 7) 查找的是字符串前7位之内的最后一个a
- 3. 千万不要混淆把 lastIndexOf('a', 7) 理解成查找字符串倒数第7位中的a
- 4. 空格也是一位数
- 5. 带参数是为了定位,要找哪段字符串中的 a,找到这个 a 后,再从前往后数,计算并返回它在总字符串中的位置。