JS · 2023年7月27日 0

JS中字符串截取函数substring()和slice()

在JavaScript中,substring()slice()都是用于截取字符串的方法,它们有一些细微的区别。

substring()方法接受两个参数,即起始索引和结束索引,并返回从起始索引到结束索引之间的字符组成的子串。

slice()方法也接受两个参数,即起始索引和结束索引,但它可以接受负数作为参数,表示从字符串的末尾开始计算。如果只有一个参数,那么slice()会从该索引开始提取到字符串的末尾。

在使用这两个方法时,可以根据实际情况选择使用哪个方法。一般来说,如果需要从特定的位置开始截取字符串,可以使用substring();如果需要从字符串的末尾开始截取,或者需要更灵活的截取方式,可以使用slice()

需要注意的是,这两个方法都不会改变原始字符串,而是返回一个新的字符串。

substring()

substring() 方法从字符串中提取两个索引(位置)之间的字符,并返回子字符串。

substring() 方法从头到尾(不包括)提取字符。

substring() 方法不会更改原始字符串。

如果 start 大于 end,则交换参数:(4, 1) = (1, 4)。

小于 0 的开始或结束值被视为 0。

slice()

具体来说,slice(start, end) 方法会从字符串中提取出从 start 到 end 的字符,并返回它们组成的新的字符串。注意,这里的索引是从 0 开始的,所以第一个字符的索引是 0,第二个字符的索引是 1,以此类推。

如果只提供一个参数,那么 slice() 方法会从该索引开始提取到字符串的末尾。

例如,对于字符串 “hello”,slice(1, 3) 会返回 “el”,而 slice(1) 会返回 “ello”。

如果 start 参数是负数,那么它会从字符串的末尾开始计算。例如,对于字符串 “hello”,slice(-1) 会返回 “o”。

如果 end 参数是负数,那么它会相当于字符串长度加上 end 的绝对值,即从字符串末尾开始向前算。例如,对于字符串 “hello”,slice(1, -1) 会返回 “ello”。