substring()和substr()只有在参数为一个正数时,取得的效果才相同。
.substring(start[,stop])
用于提取字符串中介于两个指定下标之间的字符。返回一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度为 stop 减 start。
var str = 'abcdefg';
var str2 = str.substring(2,4);//下标从0开始,返回的字符串长度为:4-2,返回结果:cd
var str3 = str.substring(4,2);//返回结果:cd,与str2相同,返回前交换了start和end的值
var str4 = str.substring(2);//返回结果:cdefg
var str5 = str.substring(-2);//返回:abcdefg
1. 不能接受负的参数,直接返回了整个字符串。
2. 返回的子串包括 start 处的字符,但不包括 stop 处的字符。
3. 如果 start 比 stop 大,那么该方法在提取子串之前会先交换这两个参数,如str3。
4. 如果没有stop参数,返回结果从下标start到字符串结束。
.substr(start[,len])
在字符串中抽取从 star下标开始的指定len长度的字符。返回一个新的字符串,包含从 stringObject 的 start(包括 start 所指的字符) 处开始的 len 个字符。如果没有指定 len,那么返回的字符串包含从 start 到 stringObject 的结尾的字符。
var str = 'abcdefg';
var str2 = str.substr(2,4);//下标从0开始,返回的字符串长度为:4,返回结果:cdef
var str3 = str.substr(4,2);//返回的字符串长度为:2,返回结果:ef
var str4 = str.substr(2);//返回结果:cdefg
var str5 = str.substr(-2);//返回结果:fg
var str6 = str.substr(-2,10);//要返回的长度是10,但返回结果:fg
var str7 = str.substr(-2,-10);//要返回的长度是-10,返回空字符串
1. 要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。
2. 重要事项:ECMAscript 没有对该方法进行标准化,**因此反对使用它**。在某些浏览器中start下标使用负值,直接返回了全部字符串。