javascript截取字符串方法substring和substr的区别

2018.12.20 17:25 阅读 304

js中有两个很相近的截取字符串方法,substrsubstring

substring

参数为Number类型

  1. 当没有参数时,默认从头(第0个)开始。
  2. 当只有一个参数时,表示从几个开始截取字符串,截取到字符串结尾,如果参数大于字符串长度,则返回空字符串。
  3. 当有两个参数时,第一个参数表示开始截取字符串的位置。第二个参数表示截取到字符串的第几位。
const str = 'kkforcom'

str.substring()      // 返回字符串 'kkforcom'
str.substring(2)     // 返回字符串 'forcom'
str.substring(10)    // 返回空字符串
str.substring(2, 5)  // 返回'for'

substr

注意:substr在MDN中有讲到,不属于核心javascript语言中的内容,不建议使用,将来可能被废除。

substr在功能上有很多和substring重复的地方。

  1. 当没有参数时,和substr功能相同,默认从头(第0个)开始。
  2. 当只有一个参数时,和substr功能相同,表示从几个开始截取字符串,截取到字符串结尾,如果参数大于字符串长度,则返回空字符串。
  3. 当有两个参数时,和substr功能不同,第一个参数表示开始截取字符串的位置。第二个参数表示要截取字符串长度。
const str = 'kkforcom'

str.substr()      // 返回字符串 'kkforcom'
str.substr(2)     // 返回字符串 'forcom'
str.substr(10)    // 返回空字符串
str.substr(2, 5)  // 返回'forco'

总结

由于substr不是核心javascript语言中的内容,在使用的过程中,如果需要截取字符串,应尽量使用substring

两者之间的区别就是在两个参数的情况下,substring第二个参数表示截取到字符串的第几位,substr表示要截取字符串的长度。