1、string.split():根据字符分割字符串
// split:分裂
var str = 'abc#edf#ghi';
var arr = str.split('#')
2、String.substring(start,end):根据给定的开始位置和结束位置获取子字符串
//substring:子字符串
var str = 'abcedfghi';
var arr = str.substring(2,4); // ce
3、String.substr(start,length):根据给定的开始位置和截取长度获取子字符串
//substr:子字符串
var str = 'abcedfghi';
var arr = str.substring(2,4); // bced
4、String.slice(start,end):根据给定的开始位置和结束位置获取子字符串
//substring:子字符串
var str = 'abcedfghi';
var arr = str.substring(2,4); // ce
总结:
slice,substring,substr 都是用来截取字符串,但是只有slice支持数组;三者如果不传参数,则都返回全部内容;
参数为正数时,只有substring会自动调换顺序,slice在第一参数大于第二参数时会无效返回空,而substr无所谓,除非给定的第一参数超出了源数据长度才会返回空;
参数为负数时,只有substring会永远无效,即不要给substring使用负值!slice可认为从尾部倒数,或者直接用源数据长度加上这个负值换算为正数,然后结论依然遵循第2条所述;而substr,则只适用第一参数为负数,换算方法同slice,其第二参数代表截取的个数,是不能为负数的;
据w3cshool所提示 (链接: http://www.w3school.com.cn/jsref/jsref_substr.asp) ,“ECMAscript 没有substr方法进行标准化,因此反对使用它”。
自己的理解:
slice 唯独它顺序有严格要求,两个参数都支持从尾部倒数,或者数据长度加上这个负值
substring 唯独它可以自动换顺序;
substr 唯独它第二个参数是个数的意思; 第一个参数为负数的时候支持从尾部倒数,或者数据长度加上这个负值