JavaScript中substring与substr方法的区别详解
本文详细解析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 的具体用法。如有任何疑问,欢迎留言交流,小编将及时回复。感谢对本站的支持!
JS读取本地文件时报错或无响应的常见原因
2026-11-05 16:32:31
let、const与var的区别:JavaScript变量声明最佳实践
2026-11-05 14:16:38
JS中直接定义静态二维数组的字面量写法
2026-11-05 14:16:08
JS 怎么查找字符串中所有匹配项的位置
2026-11-05 14:15:53
JavaScript新手常犯的编码错误与最佳实践指南
2026-11-04 22:12:38
