javascript substr和substring用法比较

在js中substring和substr都是用来截取字符串的,那么substring和substr之间的具体区别在哪里,有没有区别呢,下面我来给各位详细引用一些实例来介绍这些问题
substr函数和substring函数都是用来从某个“母字符串”中提取“子字符串”的函数。但用法有些差别,下面分别介绍
substr 方法 


定义和用法 


substr 方法用于返回一个从指定位置开始的指定长度的子字符串。 


语法 


stringObject.substr(start [, length ]) 


参数 描述 
start 必需。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。 
length 可选。在返回的子字符串中应包括的字符个数。 


说明 


如果start为负数,则start=str.length+start。 
如果 length 为 0 或负数,将返回一个空字符串。 
如果没有指定该参数,则子字符串将延续到stringObject的最后。 


功能:从“母字符串”的“指定位置”开始提取“指定长度”的“子字符串”。 


使用方法:

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

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


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

var stringObject = "hello world!"; 
 alert(stringObject.substr(3)); // lo world! 
 alert(stringObject.substr(3,stringObject.length)); // lo world! 
 alert(stringObject.substr(3,4)); // lo w 

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));-----------"" 

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。 




下面的示例演示了substring函数的用法。 


例 

<script type="text/javascript"> 
var stringObject = "hello world!"; 
alert(stringObject.substring(3)); // lo world! 
alert(stringObject.substring(3,stringObject.length)); // lo world! 
alert(stringObject.substring(3,7)); // lo w,空格也算在内[l][o][ ][w] 
</script> 

2)如果startIndex、endIndex 相等,则返回空串。如果startIndex 比 endIndex 大,则提取子串之前,调换两个参数。即stringObject.substring(startIndex,endIndex)等同于stringObject.substring(endIndex,startIndex) 


var stringObject = "hello world!"; 
alert(stringObject.substring(3,3)); // 空串 
alert(stringObject.substring(3,7)); // lo w 
alert(stringObject.substring(7,3)); // lo w 

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

substr()可以代替substring()来使用,从上面代码看出 stringObject.substr(3,4) 等同于stringObject.substring(3,7)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值