extraction
String.prototype.substr
Returns a portion of the string starting at start with the specified length. Deprecated as a legacy web feature — new code should use slice or substring, but implementations still ship it.
str.substr(start[, length]) Parameters
| Parameter | Purpose |
|---|---|
| start | Start index (negative counts from end) |
| length | Number of characters to extract (default: to end) |
Examples
console.log('hello world'.substr(6, 5)); Prints 'world'
console.log('hello'.substr(-3)); Prints 'llo'
console.log('hello'.substr(1, 3)); Prints 'ell'
console.log('hello'.substr(0, 0)); Prints '' (zero length)
Gotcha
DEPRECATED (Annex B legacy feature) — may be removed from future standards though currently supported everywhere. Second argument is a length, not an end index, unlike slice/substring.
Related methods
String.prototype.slice
Extracts a section of the string from beginIndex up to but not including endIndex, returning a new string. Negative indices count from the end.
String.prototype.substring
Returns a new string between indexStart and indexEnd (exclusive). Unlike slice(), negative arguments are treated as 0 and the arguments are swapped when indexStart > indexEnd.
String.prototype.at
Returns the UTF-16 code unit at the given index as a single-character string, supporting negative indices that count from the end. Added in ES2022 as a cleaner alternative to str[str.length - 1].
String.prototype.codePointAt
Returns the full Unicode code point (0–0x10FFFF) starting at the given position, correctly combining surrogate pairs. Added in ES2015 as the Unicode-safe counterpart to charCodeAt.