js中有三个截取字符的方法,分别是substring()、substr()、slice(),平时我们可能都用到过,但总是会对这些方法有点混淆,特别是substring()和substr(),连方法名都差不多,下面就具体来看一下区别。
相同点
这三个方法都可以对字符串进行截取,并且返回一个新的字符串,也就是不会对原字符串进行修改
//chrome控制台
> var a = '0123456789'
< undefined
> a.substr(1,5)
< "12345"
> a
< "0123456789" //没有发生改变
不同点
这三个方法的不同之处在于参数不同。
substring
substring() 方法用于提取字符串中介于两个指定下标之间的字符。
语法
string.substring(start,stop)
参数
参数
描述
start
必需。一个非负的整数,规定要提取的子串的第一个字符在 string 中的位置。
stop
可选。一个非负的整数,比要提取的子串的最后一个字符在 string 中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。
说明
1.substring() 方法返回的子串包括 start 处的字符,但不包括 stop 处的字符。
//chrome控制台
> var a = '0123456789'
< undefined
> a.substring(1,5)
< "1234"
2.如果参数 start 与 stop 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。
//chrome控制台
> var a = '0123456789'
< undefined
> a.substring(1,1)
< ""
3.如果 start 比 stop 大,那么该方法在提取子串之