substr和substring的区别

一.定义

1.substr

substr(start,length)
String.substr(N1,N2) 这个就是我们常用的从指定的位置(N1)截取指定长度(N2)的字符串;

 alert("123456789".substr(2,5)) 
//34567

2.返回值:

一个新的字符串,包含从 stringObject 的 start(包括 start 所指的字符) 处开始的 length 个字符。如果没有指定 length,那么返回的字符串包含从 start 到 stringObject 的结尾的字符。

重要事项:ECMAscript 没有对该方法进行标准化,因此反对使用它。

2.substring

substring(start,end)
String.substring(N1,N2) 这个就有点特别了,它是先从N1,N2里找出一个较小的值,然后从字符串的开始位置算起,截取较小值位置和较大值位置之间的字符串,截取出来的字符串的长度为较大值与较小值之间的差。

注意:substring() 不接受负的参数

 alert("123456789".substring(2,5)) 
//345

3.substr ,substring, slice的实例

var test = 'hello world';
console.log(test.slice(1, 3));
//el
console.log(test.substring(1, 3));
//el
console.log(test.substr(1, 3));
//ell

注意:1.slice和substring接收的是起始位置和结束位置(不包括结束位置)
2.当接收的参数是负数时:
slice从最后一位开始数
substr则仅仅是将第一个参数与字符串长度相加后的结果作为第一个参数;
substring则将负参数都直接转换为0。

var test = 'hello world';
console.log(test.slice(-2));
//ld
console.log(test.substring(-2));
//hello world
console.log(test.substr(-1, -3));
//

你可能感兴趣的:(substr和substring的区别)