js的字符串截取。

1.substring()

返回一个索引和另一个索引之间的字符串

str.substring(indexStart, indexEnd)

注意向:

1.substring()从提取的字符indexStart,但是不包括indexEnd。

2.如果indexStart邓毅indexEnd,会返回一个空字符串。

3.如果indexEnd省略,会提取到字符串的末尾。

4.如果任一参数小于0或是NaN,它将被视为0。

5.如果indexStart大于indexEnd,那么效果和被交换一样。

// 实例代码。
var str = 'ABCDEFG';
console.log(str.substring(0,1))   // A
console.log(str.substring(1,1))   // ''

console.log(str.substring(1))     // BCDEFG
console.log(str.substring(-1))    // ABCDEFG

console.log(str.substring(-1, 1))  // A  (-1)被默认为0
console.log(str.substring(1, -1))  // A

console.log(str.substring(1,2))    // B
console.log(str.substring(2,1))    // B

2.substr()

返回从指定位置开始的字符串中,指定字符数的字符。

str.substr(start, [length]);

注意点:

1.substr会从start获取长度为length的字符串(如果截取到字符串的末尾,会停止截取)

2.如果start是正数,并且大于等于字符串的长度,则substr()返回一个空字符串

3.如果start是负数,那将该值加上字符串长度后,再进行计算,(如果加上还是负数,就从0开始截取)

4.如果length为0或为负数,substrt()返回一个空字符串,如果length省略,substr()提取到字符串结尾

var str = 'ABCDE';
console.log(str.substr(1,2))  // BC

console.log(str.substr(5))    // ''  大于等于字符串长度
console.log(str.substr(1,0))  // ''  length = 0
console.log(str.substr(1,-1)) // ''  length 为负数。

console.log(str.substr(-1))   // E
console.log(str.substr(-5))   // ABCDE  length省略。start大于字符串长度,从0开始到末尾



//Microsoft的JScript不支持起始索引的负值。如果要使用此功能,可以使用以下兼容性代码来解决此错误
// only run when the substr() function is broken
if ('ab'.substr(-1) != 'b') {
  /**
   *  Get the substring of a string
   *  @param  {integer}  start   where to start the substring
   *  @param  {integer}  length  how many characters to return
   *  @return {string}
   */
  String.prototype.substr = function(substr) {
    return function(start, length) {
      // call the original method
      return substr.call(this,
        // did we get a negative start, calculate how much it is from the beginning of                                                         
        // the string
        // adjust the start parameter for negative value
        start < 0 ? this.length + start : start,
        length)
    }
  }(String.prototype.substr);
}

3.substring()与substr()的主要区别

substring()方法的参数表示起始和结束索引, substr()方法的参数是起始索引,和截取的字符串的长度

var text = 'Google';
console.log(text.substring(2,5)); // ogl
console.log(text.substr(2,3));    // ogl

4.slice()

返回一个索引和另一个索引之间的字符串。

str.slice(beginIndex,endIndex)

注意点:

1.beginIndex是负数,则将该值加上字符串长度后在进行计算(如果加上还是负数,则从0开始截取)

2.如果beginIndex大于等于字符串的长度。slice返回一个空字符串

3.如果endIndex忽略,slice()取到字符串的末尾,如果是负数。它将被视为strLength+endInde。strLength是字符串的长度。

var str = 'ABCDE';

console.log(str.slice(0,2))  //  AB

console.log(str.slice(-1))   // E
console.log(str.slice(-5))   // ABCDE

console.log(str.slice(5))    // ''
console.log(str.slice(1))    // BCDE

console.log(str.slice(1, -2)) // -2+5 = 3
console.log(str.slice(1,3))   // BC

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值