JS:String.prototype.substring()方法
String.prototype.substring()
方法返回字符串開始和結(jié)束索引之間的部分吱七,或者返回字符串開始索引至字符串的結(jié)尾缝龄。
JavaScript Demo: String.substring()
var str = 'Mozilla';
console.log(str.substring(1, 3));
// expected output: "oz"
console.log(str.substring(2));
// expected output: "zilla"
Syntax/語(yǔ)法
String.prototype.substring(indexStart[, indexEnd]);
-
Parameters/參數(shù):
-
indexStart
- The index of the first character to include in the returned substring.
- 要返回的子字符串中的第一個(gè)字符的索引。
-
indexEnd
- Optional. The index of the first character to exclude from the returned substring.
- 可選的所宰。要返回的子字符串中排除的第一個(gè)字符的索引。
-
indexStart
- Return Value
- A new string containing the specified part of the given string.
Description
-
substring()
extracts characters fromindexStart
up to but not includingindexEnd
. In particular:- If
indexEnd
is omitted,substring()
extracts characters to the end of the string.
(如果indexEnd是被省略的,substring()將提取字符直到字符串的結(jié)束疯搅。) - If
indexStart
is equal toindexEnd
,substring()
returns an empty string.
(如果indexStart等于indexEnd表制,substring()將返回一個(gè)空的字符串健爬。) - If
indexStart
is greater thanindexEnd
, then the effect ofsubstring()
is as if the two arguments were swapped; See example below.(如果indexStart大于indexEnd,效果相當(dāng)于兩個(gè)參數(shù)調(diào)換;示例在下面么介。)
- If
Note: Any argument value that is less than 0 or greater than
stringName.length
is treated as if it were 0 andstringName.length
respectively. Any argument value that isNaN
is treated as if it were 0.
任何小于0或大于stringName.length
的參數(shù)值將被視為0或stringName.length
娜遵。任何NaN
的參數(shù)值都將被視為0。
示例
Using substring()
The following example uses substring()
to display characters from the string 'Mozilla'
:
下面的示例使用substring()從字符串'Mozilla'中提取字符:
var anyString = 'Mozilla';
// Displays 'M'
console.log(anyString.substring(0, 1));
console.log(anyString.substring(1, 0));
// Displays 'Mozill'
console.log(anyString.substring(0, 6));
// Displays 'lla'
console.log(anyString.substring(4));
console.log(anyString.substring(4, 7));
console.log(anyString.substring(7, 4));
// Displays 'Mozilla'
console.log(anyString.substring(0, 7));
console.log(anyString.substring(0, 10));
Using substring()
with length
property
The following example uses the substring()
method and length
property to extract the last characters of a particular string. This method may be easier to remember, given that you don't need to know the starting and ending indices as you would in the above examples.
// Displays 'illa' the last 4 characters
var anyString = 'Mozilla';
var anyString4 = anyString.substring(anyString.length - 4);
console.log(anyString4);
// Displays 'zilla' the last 5 characters
var anyString = 'Mozilla';
var anyString5 = anyString.substring(anyString.length - 5);
console.log(anyString5);
Difference between substring()
and substr()
There's a subtle difference between the substring()
and [substr()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr)
methods, and you should be careful not get them confused.
The arguments of substring()
represent the starting and ending indexes, while the arguments of substr()
represent the starting index and the length of characters to include in the returned string.
var text = 'Mozilla';
console.log(text.substring(2,5)); // => "zil"
console.log(text.substr(2,3)); // => "zil"
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'
to 'Brave New Web'
.
// Replaces oldS with newS in the string fullS
function replaceString(oldS, newS, 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()
.