What is the difference between substr and substring?
As hinted at in yatima2975's answer, there is an additional difference:
substr()
accepts a negative starting position as an offset from the end of the string. substring()
does not.
From MDN:
If start is negative, substr() uses it as a character index from the end of the string.
So to sum up the functional differences:
substring(begin-offset, end-offset-exclusive)
where begin-offset is 0
or greater
substr(begin-offset, length)
where begin-offset may also be negative
The difference is in the second argument. The second argument to substring
is the index to stop at (but not include), but the second argument to substr
is the maximum length to return.
Links?
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substring
substr
(MDN) takes parameters as (from, length)
.substring
(MDN) takes parameters as (from, to)
.
Update: MDN considers substr
legacy.
alert("abc".substr(1,2)); // returns "bc"
alert("abc".substring(1,2)); // returns "b"
You can remember substring
(with an i) takes indices, as does yet another string extraction method, slice (with an i).
When starting from 0 you can use either method.