var str = "12345678"; console.log(str.slice(3)); // "45678" console.log(str.substring(3)); // "45678" console.log(str.substr(3)); // "45678"
slice()
和substring()
第二个参数含义都为指定字符串最后一个字符后面的位置
,
而substr()
第二个参数含义为返回的字符数量
javascript
var str = "12345678"; console.log(str.slice(3,4)); // "4" console.log(str.substring(3,4)); // "4" console.log(str.substr(3,4)); // "4567"
slice()
会把负数与字符串长度相加
var str = "12345678"; console.log(str.slice(-3)); // 至关于 scice(5) => "678" console.log(str.slice(-3,7)); // 至关于 scice(5,7) => "67" console.log(str.slice(3,-3)); // 至关于 scice(3,5) => "45" console.log(str.slice(-5,-3)); // 至关于 scice(3,5) => "45"
substring()
会把负数转换为0
var str = "12345678"; console.log(str.substring(-3)); // 至关于 substring(0) => "12345678" console.log(str.substring(-3,7)); // 至关于 substring(0,7) => "1234567" console.log(str.substring(-5,-3)); // 至关于 substring(0,0) => ""
substr()
第一个参数为负数会把负数与字符串长度相加
和slice()相同,第二个参数为负数返回空字符串
var str = "12345678"; console.log(str.substr(-3)); // 至关于 substr(5) => 678 console.log(str.substr(5,-3)); // 至关于 substr(5,0) => ""
意思为将较大的数做为开始位置,而将较小的数做为结束位置,
这个不一样点只在slice()
和substring()
才存在,substr()
只有一个参数表示位置,还有一个表示长度,因此不存在
这个问题java
slice()
会返回空字符串
var str = "12345678"; console.log(str.slice(5,3)); // "" console.log(str.slice(-3,3)); // 至关于 scice(5,3) => "" console.log(str.slice(7,-3)); // 至关于 scice(7,5) => ""
substring()
会调换
两个参数的位置
var str = "12345678"; console.log(str.substring(5,3)); // 至关于 substring(3,5) => "45" console.log(str.substring(-3,3)); // 至关于 substring(0,3) => "123" console.log(str.substring(7,-3)); // 至关于 substring(7,0) => substring(0,7) => "1234567"
来张表吧spa
本篇如能对您有所帮助,实在是感到荣幸。若有不合理之处也请你们多多指点。code