JavaScript系列 -> 截取字符串方法 substring/slice/substr

发布时间 2023-03-29 18:26:17作者: 77工作室

因为对于截取字符串的方法时常弄混,每次使用的时候,都需要不断的看教程回顾,现在总结到这里:

substring

substring(start,end):

  • start/end 分别为开始位置和结束位置;

  • 左闭右开,不包含结束位置;

  • start/end 应该为非负整数;

    • start小于0,当成0处理;
    • end可选,如果没有指定,则会一直截取到字符串的结尾;
    • end < start, 会自动相互转换,变成小的在前,大的在后
  • 举例:

    var s = 'abcd';
    s.substring(0,1) // 'a'
    s.substring(2)// 'cd'
    s.substring(3,1)// 'bc'
    s.substring(-1)// 'abcd'
    s.substring(-3)// 'abcd'
    s.substring(1,-1)// 'a'
    s.substring(3,-1)// 'abc'
    s.substring(-1,-3)// ''
    s.substring(-3,-1)// ''
    s.substring(-1,0)// ''
    

slice

slice(start,end)

  • start/end 分别为开始位置和结束位置;

  • 左闭右开,不包含结束位置;

  • start 可为负数,则从尾部开始截取,0 表示字符串的第一个字符,-1表示倒数第一个字符;

  • end 可选,可为负数,若不指定,则会一直截取到字符串的结尾;

  • start和end 都为正数或都为负数时,若end 小于start,会返回空字符串

  • 举例:

    var s = 'abcd';
    s.slice(0,1) // 'a'
    s.slice(2)// 'cd'
    s.slice(3,1)// ''
    s.slice(-1,-3)// ''
    s.slice(-3,-1)// 'bc'
    s.substring(-1,0)// ''
    

substr

substr(start,length)

  • start: 表示要截取字符串开始位置,可以是负数,-1表示字符串中最后一个字符,-2表示字符串中倒数第二个字符

  • length: 表示要截取的字符串的长度;若不指定,则截取到字符串末尾

  • 举例:

    var str = 'abcd';
    str.substr(2); // 'cd'
    str.substr(1,3); // 'bcd'
    
参考链接: