之间有什么区别 javascript
alert("abc".substr(0,2));
和 java
alert("abc".substring(0,2));
他们彷佛都输出“ ab”。 性能
Slice vs Substr vs Substring vs []方法 spa
这些javascript方法均具备性能优点。 请相应地使用这些功能。 code
正如yatima2975的答案所暗示的,还有另一个区别: 索引
substr()
接受一个负的起始位置做为与字符串结尾的偏移量。 substring()
没有。 ip
从MDN : 字符串
若是start为负,则substr()将其用做字符串末尾的字符索引。 get
因此总结一下功能上的区别: string
substring(begin-offset, end-offset-exclusive)
,其中开始偏移为0
或更大
substr(begin-offset, length)
,其中start-offset也能够是负数
区别是第二个参数。 他们的第二个参数,虽然两个数字,都指望两个不一样的东西:
使用子字符串时,第二个参数是不包括的第一个索引:
var s = "string"; s.substring(1, 3); // would return 'tr' var s = "another example"; s.substring(3, 7); // would return 'ther'
使用substr时,第二个参数是要包含在子字符串中的字符数:
var s = "string"; s.substr(1, 3); // would return 'tri' var s = "another example"; s.substr(3, 7); // would return 'ther ex'
区别在于第二个参数。 substring
的第二个参数是要在(但不包括)处中止的索引,而substr
的第二个参数是要返回的最大长度。
连接?
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substr
https://developer.mozilla.org/zh-CN/JavaScript/Reference/Global_Objects/String/substring
substr
( MDN )将参数设为(from, length)
。
substring
( MDN )将参数设为(from, to)
。
alert("abc".substr(1,2)); // returns "bc" alert("abc".substring(1,2)); // returns "b"
您能够记得substring
采用索引,还有另外一种字符串提取方法slice 。
从0开始时,您能够使用任何一种方法。