1.slice()方法:str.slice(beginIndex[, endIndex])
- 如果beginIndex为负数,则将该值加上字符串长度后再进行计算(如果加上字符串的长度后还是负数,则从0开始截取)。
- 如果beginIndex大于或等于字符串的长度,则slice()返回一个空字符串。
- 如果endIndex省略,则将slice()字符提取到字符串的末尾。如果为负,它被视为strLength + endIndex其中strLength是字符串的长度。如果为0返回一个空字符串。
var str = '一二三四五六七八九十';
var slice1 = str.slice(3, 5);
var slice2 = str.slice(3);
var slice3 = str.slice(-3);
var slice4 = str.slice(-5, -3);
var slice5 = str.slice(-5, 9);
var slice6 = str.slice(11);
var slice7 = str.slice(11, 2);
var slice8 = str.slice(2, 11);
var slice9 = str.slice(-11);
var slice10 = str.slice(-11, -5);
var slice11 = str.slice(5, 0);
var slice12 = str.slice(-5, 0);
2.substring()方法:str.substring(indexStart, [indexEnd])
- substring()从提取的字符indexStart开始并包含,但不包括 indexEnd
- 如果indexStart 等于indexEnd,substring()返回一个空字符串。
- 如果indexEnd省略,则将substring()字符提取到字符串的末尾。
- 如果任何一个参数都大于stringName.length,则被视为是stringName.length。
- 如果indexStart大于indexEnd,那么效果substring()就好像这两个论点被交换了一样。 例如,str.substring(1, 0) == str.substring(0, 1)
- substring() 无法接受负的索引,如果任一参数小于0或是NaN,它将被换成0。 例如,str.substring(-3, 5) == str.substring(0, 5)
var str = '一二三四五六七八九十';
var substring1 = str.substring(3, 5);
var substring2 = str.substring(3);
var substring3 = str.substring(-3, 5);
var substring4 = str.substring(3, -5);
var substring5 = str.substring(-3, -5);
var substring6 = str.substring(3, 0);
var substring7 = str.substring(3, 11);
var substring8 = str.substring(11, 12);
var substring9 = str.substring(-3);
3.substr():str.substr(start, [length])
- substr()会从start获取长度为length字符(如果截取到字符串的末尾,则会停止截取)。
- 如果start是正的并且大于或等于字符串的长度,则substr()返回一个空字符串。
- 若start为负数,则将该值加上字符串长度后再进行计算(如果加上字符串的长度后还是负数,则从0开始截取)。
- 如果length为0或为负数,substr()返回一个空字符串。如果length省略,则将substr()字符提取到字符串的末尾。
var str = '一二三四五六七八九十';
var substr1 = str.substr(3, 5);
var substr2 = str.substr(3);
var substr3 = str.substr(-3);
var substr4 = str.substr(-3, 2);
var substr5 = str.substr(3, 0);
var substr6 = str.substr(11, 3);
var substr7 = str.substr(-11, 3);