对字符串的截取方法,利用JavaScript中的函数,许多大神给出了众多用法,这里也进行学习小结一下。
1.substring()方法
描述
substring(start,end)
方法返回一个字符串在start到end索引之间的一个子集, 或从开始索引直到字符串的末尾的一个子集。其中,截取的字符串不包括end索引处字符。
情形
- 若start小于end,则截取其之间不包括end的字符集
- 若start等于end,则截取长度为零,返回空字符串
- 若start大于end,则执行结果相当于两个参数互换,截取长度为两参数差的绝对值
- 若省略end,则从start一直截取至末尾
- 若任一参数小于0或NaN,则被作为0处理
- 若任一参数大于待截取字符串的长度,则被作为待处理字符串的长度值处理
案例
var str = "2017-06-07";
//start < end
str.substring(2,4); //'17'
//start = end
str.substring(2,2); //''
//str > end
str.substring(4,2); //'17'
//substring(5,);
str.substring(5,); //'06-07'
//substring(4,-1);
str.substring(4,-1); //'2017',NaN亲测同效
//substring(8,15);
str.substring(8,15); //'07'
2.substr()方法
描述
substr(start,length)方法返回一个字符串从指定位置开始到指定字符数的字符集。start为开始提取字符的位置,length为提取长度。若start小于0,则截取位置为待提取字符串的长度strLength+start。
情形
- 一般提取:start大于等于0,小于字符串长度strLength,length值大于0
- 若start大于或等于字符串长度strLength,则提取为空字符串
- start小于0,情形同描述
- 若start小于0且其绝对值大于字符串长度则substr()会使用0作为提取字符的起始索引
- 若length小于或等于0,则提取为空字符串
- 若省略length,则提取从start开始一直到字符串末尾
案例
var str = "2017-06-07";
// start >= 0,length > 0
str.substr(0,4); //'2017'
//start = 14,length = 2
str.substr(14,2); //''
//start = -2,length = -2
str.substr(-2,2); //'07'
//start = -11,length = 2
str.substr(-11,2); //'20'
//start = 2,length = -2
str.substr(2,-2);
//start = 0
str.substr(0,);'2017-06-07'
3.slice()方法
slice(start,end)方法为提取一个字符串从start到end的一部分字符串,不包括end处的字符。其情形及使用可参考substring()方法,区别在于当slice()中的参数接收负值时,表示从字符串的尾部开始计数,计数从-1开始,由此可看出用法类似但差异甚大。
案例
var str = "2017-06-07";
//start = -5,end = -3
str.slice(-5,-3); //'06'
以上几种方法是最为常见几种处理方法,也是我经常使用的方法,若有好的方案,会陆续进行补充。
未经允许不得转载,如若转载,请注明出处