之間有什麼區別 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開始時,您能夠使用任何一種方法。