1、api说明
(1)substring
str.substring(indexStart[, indexEnd])
substring 提取从 indexStart 到 indexEnd(不包括)之间的字符。特别地:
indexStart 等于 indexEnd,substring 返回一个空字符串。indexEnd,substring 提取字符一直到字符串末尾。NaN,则被当作 0。stringName.length,则被当作 stringName.length。indexStart 大于 indexEnd,则 substring 的执行效果就像两个参数调换了一样。说明:参数不支持负数!
(2)substr
str.substr(start[, length])
tart 是一个字符的索引。首字符的索引为 0,最后一个字符的索引为 字符串的长度减去1。substr 从 start 位置开始提取字符,提取 length 个字符(或直到字符串的末尾)。
如果 start 为正值,且大于或等于字符串的长度,则 substr 返回一个空字符串。
如果 start 为负值,则 substr 把它作为从字符串末尾开始的一个字符索引。如果 start 为负值且 abs(start) 大于字符串的长度,则 substr 使用 0 作为开始提取的索引。注意负的 start 参数不被 Microsoft JScript 所支持。
如果 length 为 0 或负值,则 substr 返回一个空字符串。如果忽略 length,则 substr 提取字符,直到字符串末尾。
说明:第二个参数是长度length。
(3)slice
str.slice(beginSlice[, endSlice])
slice() 从一个字符串中提取字符串并返回新字符串。在一个字符串中的改变不会影响另一个字符串。也就是说,slice 不修改原字符串,只会返回一个包含了原字符串中部分字符的新字符串。
注意:slice() 提取的新字符串包括beginSlice但不包括 endSlice。
例1:str.slice(1, 4) 提取新字符串从第二个字符到第四个 (字符索引值为 1, 2, 和 3)。
例2:str.slice(2, -1) 提取第三个字符到倒数第二个字符。
2、区别
(1)slice和substring参数含义一致,但是slice的第二个参数支持负值时能被正确处理,substring的第二个参数设置为负值时被处理为0。
(2)substr的第二个参数是length,而不是索引值。
参考:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/substring
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/slice
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/substr
原文:https://www.cnblogs.com/mengfangui/p/10482298.html