习惯于IE9和更高,最差也是IE8,因此从没遇见过这个问题。
比如有字符串
var abc = "abc";
如果你想获取第一个字符,那么我们一般人的反应是
abc[0]; //"a"
当然,在IE8和以上的版本中是没错的,但假如你像我一样遇见了IE7,那么对不起,这样是不可以的。
解决办法也不难,使用
str.charAt(index);
//如上面就是
abc.charAt(0);
就可以了。这个api肯定大家都看过,不过想必用过的人不多(当然,有str[index]这样方便的api谁还会打7个字符呀,反正我肯定不会);
另外根据查询资料,以及我本人验证,可行方法还有
str.substring(beginIndex, endIndex); //含头不含尾
//如上面的就是
abc.substring(0,1); //a
abc.substring(1,2); //b
附说明:
str.substring(索引1, 索引2) 返回索引1~索引2之间的字符串
前包含后不包含,例如:
var str="abc21";
$("#a").text(str.substring(1,2));
输出的是b
假如索引2被省略,那么一直输出到字符串的结尾
例如:
var str="abc21";
$("#a").text(str.substring(1));
输出:bc21
str.slice(beginIndex, endIndex); //含头不含尾
附说明2:
str.slice(开始索引, 结束索引) 和上面功能一样,额外功能是,结束索引可以是负数。
假如是负数,那么从后往前数第n个,同样不包含结尾的。例如:
var str="abc21";
$("#a").text(str.slice(1,-1));
输出bc2(从下标1输出到下标倒数第1个但不包含倒数第一个)
var str="abc21";
$("#a").text(str.slice(-1));
输出1(因为从最后一个开始,到结尾,因此只有一个)