【JavaScript使用技巧】三个截取字符串中的子串,你用的哪个

博客说明

文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!

slice() 截取

说明

通过指定的开始和结束位置,提取字符串的某个部分,并以新的字符串返回被提取的部分。

语法
stringObject.slice(start, end)
参数说明

start(必需):规定从何处开始选取。

如果是负数,那么它规定从字符串尾部开始算起的位置。

end(可选):规定从何处结束选取,即结束处的字符下标。

如果没有指定该参数,那么截取的字符串包含从 start 到结束的所有字符。如果这个参数是负数,那么它规定的是从数组尾部开始算起的字符。

示例
var str = "0123456789";
str.slice(0,5); // 01234
str.slice(3); //3456789
str.slice(3,5); //34
str.slice(-3); //789

substring()截取

说明

提取字符串中介于两个指定下标之间的字符,返回一个新的字符串

语法
stringObject.substring(start, stop)
参数说明

start(必需):一个非负的整数,注意是非负的整数。

标识了要提取的子串的第一个字符在 stringObject 中的位置。

stop(可选):一个非负的整数,注意是非负的整数。

比要提取的子串的最后一个字符在 stringObject 中的位置多 1(至少为一个字符)。

var str = "0123456789";
str.substring(3,5); //34
str.substring(3); //3456789

注意:

如果 start 与 end 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。

如果 start 比 end 大,那么该方法在提取子串之前会先交换这两个参数。

如果 start 或 end 为负数,那么它将被替换为 0。

substr() 截取

说明

substr 方法用于返回一个从指定位置开始的指定长度的子字符串。这里注意第二个参数是长度,而不是结束的位置。

语法
stringObject.substr(start, length)
参数说明

start(必需):所需的子字符串的起始位置。

字符串中的第一个字符的索引为 0。

length(可选):在返回的子字符串中应包括的字符个数。

var str = "0123456789";
str.substr(3,5); //34567
str.substr(3); //3456789

注意:

如果 length 为 0 或负数,将返回一个空字符串

如果没有指定 length,则子字符串将延续到 stringObject 的最后

如果 start 或 length 为负数,那么它将被替换为 0

对比和记忆

其实我猜大多数pym都知道这个三个方法,但是这三个方法的区别总是有些把持不住的样子。

给一段代码,好对比。

var str = "0123456789";
str.slice(3,5); //34
str.substring(3,5); //34
str.substr(3); //3456789

slice和substring都有开始和结束的概念,所以在有开始和结束参数时,区别不大,substring不支持负数,这一边有别于slice,一般也是基于这一点来区分使用的。

substr只有开始和开始的数量,这种方式用的场景特定,区别也是最明显的,希望如果记不住前面两个,那就那这个孤儿收了吧。

感谢

万能的网络

以及勤劳的自己,个人博客GitHub测试GitHub

公众号-归子莫,小程序-小归博客

最新文章

  1. SQL SERVER 2008 评估期已过
  2. 自己关于cocoapods的使用的一些理解和总结
  3. CodeIgniter框架入门教程——第三课 URL及ajax
  4. 在linux下如何将文件夹打包
  5. yii2 [行为] behaviors 拦截器
  6. Java之对象池
  7. JVM基础:深入学习JVM堆与JVM栈
  8. ZOJ 3261 Connections in Galaxy War(逆向并查集)
  9. [转] CSS direction属性简介与实际应用 ---张鑫旭
  10. [黑马程序员] I/O
  11. IOS中 init和initialize
  12. hdu1686
  13. 用VUEJS做一个网易云音乐
  14. 201521123108《Java程序设计》第1周学习总结
  15. Java Error : type parameters of <T>T cannot be determined during Maven Install
  16. 《Python数据可视化编程实战》
  17. 个人小爱好:Operating System: three easy pieces—第6章第3小节问题2#进程间的切换
  18. Python3 tkinter基础 Label justify 多行字符串左对齐
  19. java Arrays.asList 问题
  20. set 与 map 的第一次尝试

热门文章

  1. 基于预计算的全局光照(Global Illumination Based On Precomputation)
  2. apiserver源码分析——处理请求
  3. NOIP模拟69
  4. mysql面试题及答案,mysql最新面试题,mysql面试题大全汇总
  5. 微信小程序访问豆瓣api报403错误解决方法
  6. 专访阿里云 Serverless 负责人:无服务器不会让后端失业
  7. SudokuSolver 2.0:用C++实现的数独解题程序 【一】
  8. HttpServletRequest 入门
  9. 整数划分为k份
  10. Beta阶段第六次会议