Summary
The substring()
method returns a subset of a string
between one index and another, or through the end of the string.
Syntax
str.substring(indexA[, indexB])
Parameters
-
indexA
- An integer between 0 and the length of the string.
-
indexB
- (optional) An integer between 0 and the length of the string.
Description
substring
extracts characters from indexA
up to but not including indexB
. In particular:
- If
indexA
equalsindexB
,substring
returns an empty string. - If
indexB
is omitted,substring
extracts characters to the end of the string. - If either argument is less than 0 or is
NaN
, it is treated as if it were 0. - If either argument is greater than
stringName.length
, it is treated as if it werestringName.length
.
If indexA
is larger than indexB
, then the effect of substring
is as if the two arguments were swapped; for example, str.substring(1, 0) == str.substring(0, 1)
.
Examples
Example: Using substring
The following example uses substring
to display characters from the string "Mozilla
":
// assumes a print function is defined var anyString = "Mozilla"; // Displays "Moz" console.log(anyString.substring(0,3)); console.log(anyString.substring(3,0)); // Displays "lla" console.log(anyString.substring(4,7)); console.log(anyString.substring(7,4)); // Displays "Mozill" console.log(anyString.substring(0,6)); // Displays "Mozilla" console.log(anyString.substring(0,7)); console.log(anyString.substring(0,10));
Example: Replacing a substring within a string
The following example replaces a substring within a string. It will replace both individual characters and substrings. The function call at the end of the example changes the string "Brave New World
" into "Brave New Web
".
function replaceString(oldS, newS, fullS) { // Replaces oldS with newS in the string fullS for (var i = 0; i < fullS.length; i++) { if (fullS.substring(i, i + oldS.length) == oldS) { fullS = fullS.substring(0, i) + newS + fullS.substring(i + oldS.length, fullS.length); } } return fullS; } replaceString("World", "Web", "Brave New World");
Note that this can result in an infinite loop if oldS
is itself a substring of newS
-- for example, if you attempted to replace "World" with "OtherWorld" here. A better method for replacing strings is as follows:
function replaceString(oldS, newS,fullS){ return fullS.split(oldS).join(newS); }
The code above serves as an example for substring operations. If you need to replace substrings, most of the time you will want to use String.prototype.replace()
.
Specifications
Specification | Status | Comment |
---|---|---|
ECMAScript 1st Edition. | Standard | Implemented in JavaScript 1.0 |
ECMAScript Language Specification 5.1th Edition (ECMA-262) | Standard | |
ECMAScript Language Specification 6th Edition (ECMA-262) | Draft |
Browser compatibility
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |