javascript中substr()与substring()的用法比较

发布时间:2019-09-04编辑:脚本学堂
你知道在javascript中substr与substring在用法上的区别吗?有兴趣的朋友,可以参考下本文中的介绍与例子。

说明:
substr函数和substring函数都是用来从某个“母字符串”中提取“子字符串”的函数。

来看它们之间的区别。
 
1、substr函数
功能:从“母字符串”的“指定位置”开始提取“指定长度”的“子字符串”。
例1,

字符串数据.substr(start [,length]) 

start是必选项。指明要提取的“子字符串”的起始位置。字符串中的第一个字符的索引为 0。
length是可选项。指明要提取的“子字符串”中应包括的字符个数。如果 length 为 0 或负数,将返回一个空字符串。如果没有指定该参数,则子字符串将延续到“母字符串”的最后。
例2,

母串 = "上海自来水来自海上"; 
子串1 = 母串.substr(2,4); 
//从编号为2的字符开始,提取4个长度的子字符串。 返回值: "自来水来"子串2 = 母串.substr(2); 
//从编号为2的字符开始,到最后一个字符的子字符串。 返回值: "自来水来自海上" 

2、substring函数
功能:从“母字符串”中提取从“起始位置”到“结束位置”的“子字符串”。
使用方法:字符串数据.substring(start,end)
start参数指明子字符串中“第一个字符”的位置。
end参数指明子字符串中“最后一个字符”的“后面一个字符”的位置。
substring函数返回一个从 "start位置" 开始 到 "end-1位置" 结束(不包含 "end位置"的字符 )的子字符串。
substring函数使用 start 和 end 两者中的较小值作为子字符串的起始点。例如,字符串数据.substring(0,3) 和 字符串数据.substring(3,0) 将返回相同的子字符串。
如果 start 或 end 为 NaN 或者负数,那么将其替换为0。
子字符串的长度等于 start 和 end 之差的绝对值。例如,字符串数据.substring(0,3) 和 字符串数据.substring(3,0) 返回的子字符串的的长度是 3。

例3,

母串 = "上海自来水来自海上"; 
子串 = 母串.substring(2,4); 
//从“编号为2”的字符开始,到“编号为(4-1)”的字符结束的子字符串。返回值: "自来"