js substr 与 substring 有什么区别吗
在 JavaScript 中,substr
和 substring
是用于提取字符串的两个方法,它们的功能类似,但有一些区别:
1. substr(start, length) 方法:
-
参数:
start
:必需。要提取的子字符串的起始位置。如果为负数,表示从字符串末尾开始计数。length
:可选。要提取的字符数。如果省略或为负数,则提取到字符串的末尾。
-
返回值:
- 返回从指定位置开始的指定长度的子字符串。
-
示例:
javascriptCopy Codevar str = "Hello, world!"; console.log(str.substr(1, 4)); // 输出 "ello" console.log(str.substr(-6)); // 输出 "world!"
2. substring(start, end) 方法:
-
参数:
start
:必需。要提取的子字符串的起始位置。如果为负数,会被当作 0。end
:可选。要提取的子字符串的结束位置(不包括该位置的字符)。如果省略或为负数,会被当作字符串的长度。
-
返回值:
- 返回位于两个指定下标之间的子字符串。
-
示例:
javascriptCopy Codevar str = "Hello, world!"; console.log(str.substring(1, 4)); // 输出 "ell" console.log(str.substring(4)); // 输出 "o, world!"
区别总结:
substr
的第二个参数是要提取的字符数,而substring
的第二个参数是要提取的子字符串的结束位置。substr
允许第一个参数为负数,表示从字符串末尾开始计数;而substring
不允许负数参数,会被当作 0。- 当
start
参数大于end
参数时,substr
会将它们交换,而substring
会将负数参数视为 0。