因为对于截取字符串的方法时常弄混,每次使用的时候,都需要不断的看教程回顾,现在总结到这里:
substring
substring(start,end):
-
start/end 分别为开始位置和结束位置;
-
左闭右开,不包含结束位置;
-
start/end 应该为非负整数;
- start小于0,当成0处理;
- end可选,如果没有指定,则会一直截取到字符串的结尾;
- end < start, 会自动相互转换,变成小的在前,大的在后
-
举例:
var s = 'abcd'; s.substring(0,1) // 'a' s.substring(2)// 'cd' s.substring(3,1)// 'bc' s.substring(-1)// 'abcd' s.substring(-3)// 'abcd' s.substring(1,-1)// 'a' s.substring(3,-1)// 'abc' s.substring(-1,-3)// '' s.substring(-3,-1)// '' s.substring(-1,0)// ''
slice
slice(start,end)
-
start/end 分别为开始位置和结束位置;
-
左闭右开,不包含结束位置;
-
start 可为负数,则从尾部开始截取,0 表示字符串的第一个字符,-1表示倒数第一个字符;
-
end 可选,可为负数,若不指定,则会一直截取到字符串的结尾;
-
start和end 都为正数或都为负数时,若end 小于start,会返回空字符串
-
举例:
var s = 'abcd'; s.slice(0,1) // 'a' s.slice(2)// 'cd' s.slice(3,1)// '' s.slice(-1,-3)// '' s.slice(-3,-1)// 'bc' s.substring(-1,0)// ''
substr
substr(start,length)
-
start: 表示要截取字符串开始位置,可以是负数,-1表示字符串中最后一个字符,-2表示字符串中倒数第二个字符
-
length: 表示要截取的字符串的长度;若不指定,则截取到字符串末尾
-
举例:
var str = 'abcd'; str.substr(2); // 'cd' str.substr(1,3); // 'bcd'