没有娃娃菜怎么吃火锅 进来随便坐
字符串截取的三种方法:slice() substr() substring()
发布于: 2020-04-16 更新于: 2020-04-24 分类于: JavaScript 阅读次数: 

slice() substr() substring() 方法的应用与异同

红宝书里说:

ECMAScript还提供了三个基于子字符串创建新字符串的方法:slice()、substr()和substring()。 这三个方法都会返回被操作字符串的一个子字符串,而且也都接受一或两个参数。

重点:创建新子字符串,也就是说不改变原字符串

slice()

中文:切片

语法

str.slice(beginIndex[,endIndex])

beginIndex:开始位置,左闭。

endIndex(可选):结束位置,右开。若省略,到结尾。

以上两个数都可以是负值=>负值实际转换成:字符串长度+负值=>和substring()不一样的地方

以上两个参数必须按照顺序从小到大,否则返回空串。=>和substring()不一样的地方

例子

1
2
3
4
5
var string = "娃娃菜今天好好学习了么"
string.length //11
string.slice(3) //"今天好好学习了么"
string.slice(5, 10) //"好好学习了"
string.slice(-11, -8) //"娃娃菜" beginIndex:11-11=0 endIndex:11-8=3

substring()

语法

str.substring(beginIndex[,endIndex])

beginIndex:开始位置,左闭。

endIndex(可选):结束位置,右开。若省略,到结尾。

以上两个参数都可以是负值=>负值一律按0处理

以上两个参数谁小谁当beginIndex

例子

1
2
3
4
var string = "娃娃菜今天好好学习了么"
string.substring(-1) //"娃娃菜今天好好学习了么"
string.substring(-1, -2) //""
string.substring(5, 2) //"菜今天"

substr()

前情提要之MDN警告:避免使用,未来可能会被移除掉。

语法

str.substr(beginIndex[, length])

beginIndex:开始位置,左闭。可以为负值=>负值实际转换成:字符串长度+负值

length(可选):提取的字符数.可以为负值=>0

例子

1
2
3
4
var string = "娃娃菜今天好好学习了么"
string.substr(2, 5) //"菜今天好好"
string.substr(-7, 3) //"天好好" beginIndex:11-7=4
string.substr(2, -3) //"" 第二个参数不管是负几,得到的都是空串
--- 本文结束 The End ---