JavaScript String substring() 方法

定义和用法

substring() 方法从字符串中提取两个索引(位置)之间的字符,并返回子字符串。

substring() 方法从头到尾(不包括)提取字符。

substring() 方法不会更改原始字符串。

如果 start 大于 end,则交换参数:(4, 1) = (1, 4)。

小于 0 的开始或结束值被视为 0。

另请参阅:

split() 方法

slice() 方法

substr() 方法

实例

例子 1

从文本中提取子字符串:

let text = "Hello world!";
let result = text.substring(1, 4);

亲自试一试

例子 2

从位置 2 开始:

let result = text.substring(2);

亲自试一试

例子 3

如果 start 大于 end,则交换参数:

let result = text.substring(4, 1);

亲自试一试

例子 4

如果 "start" 小于 0,它将从索引 0 开始:

let result = text.substring(-3);

亲自试一试

例子 5

仅第一个:

let result = text.substring(0, 1);

亲自试一试

例子 6

仅最后一个:

let result = text.substring(text.length - 1);

亲自试一试

语法

string.substring(start, end)

参数

参数 描述
start

必需。非负的整数。起始位置。

第一个字符在索引 0 处。

end

可选。非负的整数。结束位置(至多,但不包括)。

如果省略,则提取字符串的其余部分。

返回值

类型 描述
字符串 包含被提取字符的字符串。

技术细节

返回值

返回新字符串,该字符串值包含 string 的一个子字符串,其内容是从 start 处到 end-1 处的所有字符,其长度为 endstart

说明

substring() 方法返回的子串包括 start 处的字符,但不包括 end 处的字符。

如果参数 startend 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。如果 startend 大,那么该方法在提取子串之前会先交换这两个参数。

请记住,该子串包括 start 处的字符,不包括 end 处的字符,返回的子串长度始终等于 end-start

请注意,split()substr() 都可以从一个字符串提取子串。和这些方法不同的是,substring() 方法不接受负的参数。

浏览器支持

substring() 是 ECMAScript1 (ES1) 特性。

所有浏览器都完全支持 ES1 (JavaScript 1997):

Chrome IE Edge Firefox Safari Opera
Chrome IE Edge Firefox Safari Opera
支持 支持 支持 支持 支持 支持

相关页面

JavaScript 字符串

JavaScript 字符串方法

JavaScript 字符串搜索