哎呀吆博客

大前端爱好与探索者-Jerry

JavaScript中字符串截取方法小结

JavaScript 0 评

关于字符串的截取方法五花八门,这里也进行学习小结一下。

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'

以上几种方法是最为常见几种处理方法,也是我经常使用的方法,持续总结。

上一篇

发表评论

电子邮件地址不会被公开。 必填项已用*标注