JavaScript中substring与substr方法的区别详解

作者:青柠

时间:2026-10-30

浏览:231

本文详细解析JavaScript中substring与substr两个字符串截取方法的区别。substring通过起始和结束索引提取子串,自动处理参数大小关系;substr通过起始位置和长度截取,支持负数索引。两者在参数处理、负数行为及返回值上存在差异,本文通过具体示例说明其用法与边界情况。

文章目录

substring 方法详解

substring 方法用于从字符串中提取指定索引范围内的字符。

substring(start,end)

参数 start 和 end 表示字符的索引位置,索引从 0 开始计算。

参数说明

start:必需参数,为非负整数,指定子串中第一个字符在源字符串中的索引位置。 end:可选参数,为非负整数,指定子串中最后一个字符在源字符串中的索引位置加 1。若省略此参数,则提取范围延伸至字符串末尾。

返回值

返回一个新字符串,包含从 start 索引到 end-1 索引之间的所有字符,字符串长度等于 end 减去 start。

规则说明

提取的子串包含 start 索引处的字符,但不包含 end 索引处的字符。

若 start 与 end 相等,则返回空字符串(长度为 0)。

若 start 大于 end,方法会在提取前自动交换这两个参数的值。

若 start 或 end 为负数,则该参数被视为 0。

substr 方法详解

2. substr 方法

定义和用法

substr 方法用于从字符串中指定起始位置开始,提取指定长度的子字符串。

语法

stringObject.substr(start [, length ])

参数说明

start:必需参数,指定子字符串的起始位置,字符串首个字符索引为 0。 length:可选参数,指定返回子字符串中包含的字符数量。

规则说明

若 start 为负数,则其实际位置为 str.length + start。

若 length 为 0 或负数,则返回空字符串。

若未指定 length 参数,则子字符串提取至源字符串末尾。

示例代码

var str = "0123456789"; alert(str.substring(0));------------"0123456789" alert(str.substring(5));------------"56789" alert(str.substring(10));-----------"" alert(str.substring(12));-----------"" alert(str.substring(-5));-----------"0123456789" alert(str.substring(-10));----------"0123456789" alert(str.substring(-12));----------"0123456789" alert(str.substring(0,5));----------"01234" alert(str.substring(0,10));---------"0123456789" alert(str.substring(0,12));---------"0123456789" alert(str.substring(2,0));----------"01" alert(str.substring(2,2));----------"" alert(str.substring(2,5));----------"234" alert(str.substring(2,12));---------"23456789" alert(str.substring(2,-2));---------"01" alert(str.substring(-1,5));---------"01234" alert(str.substring(-1,-5));--------"" alert(str.substr(0));---------------"0123456789" alert(str.substr(5));---------------"56789" alert(str.substr(10));--------------"" alert(str.substr(12));--------------"" alert(str.substr(-5));--------------"56789" alert(str.substr(-10));-------------"0123456789" alert(str.substr(-12));-------------"0123456789" alert(str.substr(0,5));-------------"01234" alert(str.substr(0,10));------------"0123456789" alert(str.substr(0,12));------------"0123456789" alert(str.substr(2,0));-------------"" alert(str.substr(2,2));-------------"23" alert(str.substr(2,5));-------------"23456" alert(str.substr(2,12));------------"23456789" alert(str.substr(2,-2));------------"" alert(str.substr(-1,5));------------"9" alert(str.substr(-1,-5));-----------""

以上介绍了 JavaScript 中 substring 与 substr 的具体用法。如有任何疑问,欢迎留言交流,小编将及时回复。感谢对本站的支持!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章