API
截取
substr
String#substr(beginIndex: number, length?: number | undefined): string
JS
- beginIndex 不传入默认为 0
- beginIndex 大于
length
取到空字符串 - beginIndex 负值且
abs(beginIndex)
大于length
则从 0 开始 - length 为 0 或负值返回空字符串
⚠️ 任何时候,使用 substring 都是更好的选择
substring
String#substring(start: number, end?: number | undefined): string
JS
- start 不传入默认取 0
- index 为负值或 NaN 当 0 处理
- index 大于
length
则当作 length - start 大于 end 将互换位置
可见 substring 对很多非错误传参做了处理。
slice
// index 为负数,均可以理解为倒数
Array#slice(start?: number | undefined, end?: number | undefined): string[]
String#slice(start?: number | undefined, end?: number | undefined): string
- 开始索引默认值等于 0
- 负数索引原理(Polyfill)
length + start | end
- end 省略或大于数组 | 字符串长度则取到末尾
- 返回新数组 | 字符串
splice
Array#splice(start?: number, deleteCount?: number, ...addItem?: any): number[]
- deleteCount 为 0 或负不删除元素
- addItem 添加的元素从 start 位置开始
- 返回包含被删除元素的数组
split
String#split(separator: string | RegExp, limit?: number | undefined): string[]
JS
- 如果
separator
为不存在的分隔符或省略,则返回包含一个由整个字符串组成的元素的数组。 - 如果
separator
为''
,则将原字符串中每个字符的数组形式返回。
替换
replace
String#replace(searchValue: string | RegExp, replaceValue: string): string
JS
- replaceValue 可以是一个字符串或者一个每次匹配都要调用的回调函数(带返回值)
- 返回新字符串
- 只能替换第一个匹配的字符串