在 JavaScript 中,substr()
和 substring()
都是用于提取字符串中特定部分的方法,但它们有一些区别:
substr(startIndex, length)
- 参数: 接受两个参数,第一个参数是起始索引(可以是负数,表示从字符串末尾开始计数),第二个参数是要提取的字符数。
- 功能: 从指定的起始位置开始截取指定长度的字符。
- 负数处理: 若第一个参数为负数,则从字符串末尾开始计数。若第二个参数为负数或超出字符串长度,则会被转换为 0。
substring(startIndex, endIndex)
- 参数: 接受两个参数,分别是起始索引和结束索引(不包含结束索引位置的字符)。
- 功能: 从起始索引处开始到结束索引之前(不包含结束索引位置)的字符。
- 负数处理: 若参数为负数或者大于字符串长度,会被视为 0 或者字符串的长度。
区别:
- 区间参数不同:
substr()
的第二个参数是要提取的字符数,而substring()
的第二个参数是结束索引位置。 - 对负数参数处理不同:
substr()
可以接受负数作为参数,而substring()
则会将负数参数视为 0。
示例:
const str = "JavaScript";
const substrResult = str.substr(4, 6); // 从索引4开始提取6个字符(Script)
const substringResult = str.substring(4, 6); // 从索引4开始到索引6之前的字符(Sc)
需要注意的是,这两个方法在某些方面功能重叠,但在处理负数参数和第二个参数的定义上有所不同。
Was this helpful?
0 / 0