js中String对象slice、substr与substring的区别
1.slice(start,end)
返回字符串中起始位置为start,结束位置为end(不包括end)的子字符串
var name = "string of text" console.log(name.slice(0,5)) //结果为strin
slice可以传负数,负值 = 字符串的长度与负数相加
var name = "string of text" console.log(name.slice(0,-5)) //结果为string of
以上负数值等同于
var name = "string of text" console.log(name.slice(0,9)) //结果也为string of
2.substr(start,length)
返回一个从指定位置开始的指定长度的子字符串
/* substr(初始索引值, 长度) */ var name = "string of text" console.log(name.substr(3, 3)) //结果为ing
substr也可以传负值,但仅仅是将第一个参数与字符串长度相加后的结果作为第一个参数
var test = 'hello world' console.log(test.substr(-3)); //rld console.log(test.substr(3,-4)); //空字符串
3.substring(start,end)
返回一个指定位置之间的子字符串,不包括end
var name = "string of text" console.log(name.substring(0, 5)) //结果为strin
substring不能传负数,但参数位置可颠倒,因为substring是以两个参数中较小一个作为起始位置,较大的参数作为结束位置。如:
var name = "string of text" console.log(name.substring(5, 0)) //结果也为strin
总结:
相同点:①slice、substr与substring都返回字符串的指定位置
②都不改变原字符串
不同点:①slice、substr参数可传负值,substring则不能
②slice、substring通过两个位置(起始位置,终止位置(不包括))提取一个字符串,substr则通过一个位置和一个长度(起始位置,长度)提取一个字符串
③slice、substr参数不可颠倒,substring则可以,因为substring以两个参数中较小一个作为起始位置,较大的参数作为结束位置。

浙公网安备 33010602011771号