String.prototype.substr()
Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.
The substr()
method returns a portion
of the string, starting at the specified index and extending for a given number of
characters afterwards.
Syntax
substr(start)
substr(start, length)
Parameters
start
-
The index of the first character to include in the returned substring.
length
-
Optional. The number of characters to extract.
Return value
A new string containing the specified part of the given string.
Description
substr()
extracts length
characters from a
str
, counting from the start
index.
-
If
start
is a non-negative number, the index starts counting from the start of the string. Its value is capped atstr.length - 1
. -
If
start
is a negative number, the index starts counting from the end of the string. Its value is capped at-str.length
. -
Note: In Microsoft JScript, negative values of the
start
argument are not considered to refer to the end of the string. -
If
length
is omitted,substr()
extracts characters to the end of the string. -
If
length
isundefined
,substr()
extracts characters to the end of the string. -
If
length
is a negative number, it is treated as0
. -
For both
start
andlength
,NaN
is treated as0
.
Polyfill
Microsoft's JScript does not support negative values for the start index. To use this feature in JScript, you can use the following code:
// only run when the substr() function is broken
if ('ab'.substr(-1) != 'b') {
/**
* Get the substring of a string
* @param {integer} start where to start the substring
* @param {integer} length how many characters to return
* @return {string}
*/
String.prototype.substr = function(substr) {
return function(start, length) {
// call the original method
return substr.call(this,
// did we get a negative start, calculate how much it is from the beginning of the string
// adjust the start parameter for negative value
start < 0 ? this.length + start : start,
length)
}
}(String.prototype.substr);
}
Examples
Using substr()
var aString = 'Mozilla';
console.log(aString.substr(0, 1)); // 'M'
console.log(aString.substr(1, 0)); // ''
console.log(aString.substr(-1, 1)); // 'a'
console.log(aString.substr(1, -1)); // ''
console.log(aString.substr(-3)); // 'lla'
console.log(aString.substr(1)); // 'ozilla'
console.log(aString.substr(-20, 2)); // 'Mo'
console.log(aString.substr(20, 2)); // ''
Specifications
Specification |
---|
ECMAScript Language Specification # sec-string.prototype.substr |
Browser compatibility
BCD tables only load in the browser