JavaScript中字符串的三种方法截取区别,不容你错过
注意:
1)当使用str.slice(index1,index2)时,
一般来说当截取函数有两个参数的时候,截取的结果都是“前闭后开”的截取。
2) 不论怎样截取,源字符的值不会改变,值是截取的函数返回值才是截取后的结果
如:var resulStr = str1.截取函数名字()后的str1的值没有改变,即“字符串不可变”
如果不明白不可变字符串可以参考这篇文章:javascript中可变值与不可变值(原始值)
str.slice()
##根据索引值1和索引值2截取字符串
为了讲述方便,下面将索引值和字符串对应的字符取相等的值。
即var str=“012345”中‘0‘,’1‘,’2‘,’3‘,’4‘,’5‘一一所对应的索引值就是0,1,2,3,4,5。
var str = “0123456”
1.str.slice(index1)://截取范围为[index1,str.length)
eg: str.slice(2)// 返回结果为:23456
2.str.slice(index1,index2);//截取的范围为:[index1,index2)
eg: str.slice(1,3); // 返回结果为 12
3.str.slice(-n); //n为正整数,代表截取后边n个字符
eg: str.slice(-3); // 返回的结果为:456;
注意:
当使用str.slice(index1,index2)时,如果index1>index2的时候,截取的结果时一个空字符串;
str.substring();
##根据索引值1和索引值2截取字符串
var str = “012345”;
1.str.substring(n); //截取范围[n,str.length);
eg:str.substring(3); //返回结果为345;
2.str.substring(n,m);//表示从索引为n处开始连续截取m个字符,
eg:str.substring(3,2); //返回结果为34;
3.str.substring(-n); //截取返回结果为:str本身
eg:str.substring(-3) //返回结果为:012345;
注意:
当使用str.substring(index1,index2)时,如果index1>index2的时候,等价与str.substring(index2,index1);
即此处会存在一个强制将索引值小的作为第一个参数,索引值打的作为第二个参数
str.substr()
##跟剧索引值和长度值截取字符串
1.var str = “012345”;
1.str.substr(n); //截取范围[n,str.length);
eg:str.substr(3); //返回结果为345;
2.str.substr(n,m);//表示从索引为n处开始连续截取m个字符,
eg:str.substring(3,2); //返回结果为34;
3.str.substring(-n); //截取返回结果为:str后边的n个值
eg:str.substring(-3) //返回结果为:345;
注意:
当使用str.substring(index1,index2)时,如果index1>index2的时候,是一个空字符