当前位置: 代码迷 >> 综合 >> 关于js截取字符串函数 substr substring slice 的用法以及区别
  详细解决方案

关于js截取字符串函数 substr substring slice 的用法以及区别

热度:64   发布时间:2023-10-08 15:52:39.0

关于js截取字符串函数 substr substring slice 的用法以及区别

1.substring( startIndex, endIndex ) 返回从索引startIndex 开始 到索引 endIndex之前的字符串。

注意:

  • 如果两个参数相等则返回空字符串
  • 如果只传一个参数,那么将从该位置截取到字符串末尾
  • 如果第一个参数 > 第二个参数,那么执行的过程中会判断两个参数的大小,然后从小的索引截取到大的索引
  • 如果不传参数,那么将返回原字符串
  • 如果其中一个参数是0,那么它将被当做0
let str = 'expression';
console.log( str.substring( 2, 5 ) ); // 'pre'
console.log( str.substring( 5, 2 ) ); // 'pre'
console.log( str.substring() ); // 'expression'
console.log( str.substring( 5, -3 ) ); // 'expre'

2.slice( startIndex, endIndex )返回从索引startIndex 开始 到索引 endIndex之前的字符串。

用法与substring很相似,主要看一下区别:

  • 不会在执行过程中判断索引大小从而把小的放在前,如果第一个参数 > (字符串长度 - 1),那么将返回undefined
  • 如果某个参数为负数,那么他将会加上字符串长度来计算,如果 startIndex 加上字符串长度之后还是负数,那么会默认从索引0开始截取
let str = 'expression';
console.log( str.slice( 15, 3 ) ); // undefined
console.log( str.slice( -19, -1 ) ); // 'expressio'

3.substr( startIndex, count )从索引 startIndex 开始,截取 count 个字符串

注意:

  • 如果startIndex >= 字符串的长度,那么将返回空字符串
  • 如果startIndex是负数,那么加上字符串长度计算,如果还是负数,那么从索引0开始截取
  • 如果是count 是个负数或者为0,那么将返回空字符串
  • 如果未传 count 参数,那么将默认从索引 startIndex 截取到字符串末尾
let str = 'expression';
console.log( str.substr( 12, 3 ) ); // ''
console.log( str.substr( -7, 2 ) ); // 're'
console.log( str.substr( -20, 3 ) ); // 'exp'
console.log( str.substr( 5, 0 ) ); // ''
console.log( str.substr( 5 ) ); // 'ssion'
  相关解决方案