substr、substring、slice的比较分析

<html>

<head>
<script>
var str = "123456";
document.write("123456:<br />----------substr-------------------<br />");
document.write("substr(0,5) =|" + str.substr(0,5) + "|" + "<br />");
document.write("substr(0) =|" + str.substr(0) + "|" + "<br />");
document.write("substr(5,1) =|" + str.substr(5,1) + "|" + "<br />");
document.write("substr(-5,2) =|" + str.substr(-5,2) + "|" + "<br />");
document.write("substr(-2,-5) =|" + str.substr(-2,-5) + "|" + "<br />");
document.write("substr(1,1) =|" + str.substr(1,1) + "|" + "<br />");
document.write("-----------------substring---------------<br />");

document.write("substring(0,5) =|" + str.substring(0,5) + "|" + "<br />");
document.write("substring(0) =|" + str.substring(0) + "|" + "<br />");
document.write("substring(5,1) =|" + str.substring(5,1) + "|" + "<br />");
document.write("substring(-5,2) =|" + str.substring(-5,2) + "|" + "<br />");
document.write("substring(-2,-5) =|" + str.substring(-2,-5) + "|" + "<br />");
document.write("substring(2,-5) =|" + str.substring(2,-5) + "|" + "<br />");
document.write("substring(1,1) =|" + str.substring(1,1) + "|" + "<br />");
document.write("-----------------slice-----------------<br />");

document.write("slice(0,5) =|" + str.slice(0,5) + "|" + "<br />");
document.write("slice(0) =|" + str.slice(0) + "|" + "<br />");
document.write("slice(5,1) =|" + str.slice(5,1) + "|" + "<br />");
document.write("slice(-5,2) =|" + str.slice(-5,2) + "|" + "<br />");
document.write("slice(-2,-5) =|" + str.slice(-2,-5) + "|" + "<br />");
document.write("slice(2,-5) =|" + str.slice(2,-5) + "|" + "<br />");
document.write("slice(1,1) =|" + str.slice(1,1) + "|" + "<br />");
/**
总结:
substring(start,end)
substring 方法返回的子串包括 start 处的字符,但不包括 end 处的字符。
如果 start 与 end 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。
如果 start 比 end 大,那么该方法在提取子串之前会先交换这两个参数。自动颠倒位置,数值大的在start位置上,数值小的在end位置上
如果 start 或 end 为负数,那么它将被替换为 0。

stringObject.substr(start [, length ])
start   必需。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。
length 可选。在返回的子字符串中应包括的字符个数
如果 length 为 0 或负数,将返回一个空字符串。将数值为负数的参数转换为0 ,如果 start 或 end 为 NaN 或者负数,那么将其替换为0.
如果没有指定该参数,则子字符串将延续到stringObject的最后

stringObject.slice(startIndex,endIndex)
1)参数 endIndex 可选,如果没有指定,则默认为字符串的长度 stringObject.length
2)startIndex 、endIndex 可以是负数。如果为负,则表示从字符串尾部开始算起。即-1表示字符串最后一个字符。
  var stringObject = "hello world!";
  alert(stringObject.slice(-3)); // ld!
  alert(stringObject.slice(-3,stringObject.length)); // ld!
  alert(stringObject.slice(-3,-1)); // ld
3)startIndex、endIndex 都是可选的,如果都不填则返回字符串 stringObject 的全部,等同于slice(0)
  var stringObject = "hello world!";
  alert(stringObject.slice()); // hello world!
  alert(stringObject.slice(0)); // hello world!
4)如果startIndex、endIndex 相等,则返回空串


**/
</script>
</head>

<body>

</body>

</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值