JS提供两个截取字符串的方法,分别是:slice()和substring()
slice和substring都可以接受一个或两个参数,第1个参数是获取要截取的字符串的直始位置,第2个参数如果不为空则是获取要截取的字符串的结束位置的前一位(也就是说获取的终点位置不在返回值内),为空表示截取到整个字符串的最后一个字符。
我们来看下两种方法的用法
注意:字符串的位数都是从0开始
- <script language="javascript">
- var stmp = "rcinn.cn";//使用一个参数
- alert(stmp.slice(3));//从第4个字符开始,截取到最后个字符;返回"nn.cn"
- alert(stmp.substring(3));//从第4个字符开始,截取到最后个字符;返回"nn.cn"
- //使用两个参数
- alert(stmp.slice(1,5))//从第2个字符开始,到第5个字符;返回"cinn"
- alert(stmp.substring(1,5));//从第2个字符开始,到第5个字符;返回"cinn"
- //如果只用一个参数并且为0的话,那么返回整个参数
- alert(stmp.slice(0));//返回整个字符串
- alert(stmp.substring(0));//返回整个字符串
- //那如何只反回第一个字符呢,可以用其它的函数,那如果一定要用这两个方法的话就指定第一个参数为0,第二个参数为1,看下面的例子
- alert(stmp.slice(0,1));//返回"r"
- alert(stmp.substring(0,1));//返回"r"
//在上面的例子中我们可以看出slice()和substring()的用法是相同的,返回的值也是一样的,但当参数为负数时,他们的返回值却不一样,看下面的例子
alert(stmp.slice(2,-5));//返回"i"
alert(stmp.substring(2,-5));//返回"rc"
//从上面两个例子可以看出slice(2,-5)实际上是slice(2,3),负5转换成正3;而substring(2,-5)实际上是substring(2,0),负数转换为0,swubstring总是把最小的数作为起始位置。
</script>
String.substr(N1,N2) 这个就是我们常用的从指定的位置(N1)截取指定长度(N2)的字符串;
String.substring(N1,N2) 这个就有点特别了,它是先从N1,N2里找出一个较小的值,然后从字符串的开始位置算起,截取较小值位置和较大值位置之间的字符串,截取出来的字符串的长度为较大值与较小值之间的差。