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

作者:异步漫步

时间:2026-10-24

浏览:504

本文详细解析 JavaScript 中 substr 和 substring 两个字符串截取方法的区别。substr 通过起始位置和长度截取子串,而 substring 通过起始和结束索引截取。重点对比了两者在参数处理、负数行为及边界情况上的差异,并附带完整代码示例,帮助开发者准确选择合适的方法。

文章目录
substr 方法

substr 方法详解

该方法用于从指定位置开始,截取指定长度的子字符串。


stringvar.substr(start [, length ])


参数说明


stringvar


必选参数,表示需要从中提取子字符串的原始字符串字面量或 String 对象。


start


必选参数,指定子字符串的起始位置,字符串索引从 0 开始计算。


length


可选参数,指定返回子字符串中包含的字符数量。


说明


若 length 为 0 或负数,则返回空字符串;若未指定该参数,子字符串将一直截取到 stringvar 的末尾。


示例


以下代码演示了 substr 方法的具体用法。


代码如下:

 
function SubstrDemo(){
var s, ss; // 声明变量。
var s = "The rain in Spain falls mainly in the plain.";
ss = s.substr(12, 5); // 获取子字符串。
return(ss); // 返回 "Spain"。
} 

举例: 

[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]


substring 方法

substring 方法详解

该方法用于返回位于 String 对象中指定位置的子字符串。


strVariable.substring(start, end)


"String Literal".substring(start, end)


参数说明


start


指定子字符串的起始位置,索引从 0 开始计算。


end


指定子字符串的结束位置,索引从 0 开始计算。


说明


substring 方法返回包含从 start 到 end(不包含 end)之间字符的子字符串。


该方法会自动使用 start 和 end 中较小的值作为起始点。例如,strvar.substring(0, 3) 与 strvar.substring(3, 0) 返回相同的子字符串。


若 start 或 end 为 NaN 或负数,则将其替换为 0。


子字符串的长度等于 start 和 end 之差的绝对值。例如,strvar.substring(0, 3) 和 strvar.substring(3, 0) 返回的子字符串长度均为 3。


示例


以下代码演示了 substring 方法的具体用法。


代码如下:

 
function SubstringDemo(){
var ss; // 声明变量。
var s = "The rain in Spain falls mainly in the plain..";
ss = s.substring(12, 17); // 取子字符串。
return(ss); // 返回子字符串。
} 

更多基础可以参考:


https://www.jb51.net/w3school/js/jsref_substring.htm


https://www.jb51.net/w3school/js/jsref_substr.htm

实用工具推荐

电子包浆

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

使用 ›
图片压缩

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

使用 ›
相关文章