JS字符串截取方法都有哪些 怎么用才更合适
哎,说到JavaScript里截取字符串,真是经常碰到,大家伙儿总想找个快捷靠谱的办法。其实常用的主要就三个函数:slice、substring和substr。它们都能帮你拿到想要的那部分字符串,但用起来有点细节不一样,弄明白了,写代码就顺溜多了。
-
substring方法:
- 用法:string.substring(startIndex, endIndex)
- 它从起始位置截取到结束位置(不包括结束位置)中间的内容。
- 注意啦,如果开始索引大于结束索引,它会自动换个顺序帮你截,挺smart的。
- 不支持负数索引哦,给负数参数会当成0处理。
- 不改变原字符串,返回一个新字符串,超级安全。 -
slice方法:
- 用法:string.slice(startIndex, endIndex)
- 和substring类似,也是截取[startIndex, endIndex)的部分。
- 牛逼的是它支持负数索引!比如-3就代表倒数第三个字符,超级灵活。
- 不过如果开始索引大于结束索引,和substring不一样,slice会返回空字符串。
- 也是返回新字符串,原串完好无损。 -
substr方法:
- 用法:string.substr(startIndex, length)
- 从startIndex开始,截取指定长度的字符串。
- 它也支持负数起始位置,挺方便!
- 但是这个方法嘛有点小尴尬,官方建议以后别用太多,兼容性有点小坑,特别是某些旧版浏览器。
- 同样不改变原字符串。
这三个函数你要用哪个,得看场景:
- 想按位置截,substring很简单;
- 需要支持负数索引,slice靠谱;
- 要按长度截,那substr能派上用场,但要注意兼容性。

怎么截取字符串的开头和结尾 快速搞定你需要的内容
OK,咱们聊聊一些常见的小需求,截取字符串前面几位或者后面几位,该咋整?很简单,掌握下面这些绝对稳:
-
截取前几位:
比如要拿字符串最开始的前三个字母,直接用slice或者substring就能搞定:
js let str = "HelloWorld"; let frontThree = str.substring(0, 3); // "Hel" // 或者 let frontThreeSlice = str.slice(0, 3); // "Hel"
非常直观吧,起始位置写0,结束位置写你想要的长度就行。 -
截取后几位:
要获取字符串末尾的几个字符,咱们就得用到字符串长度减去要截取的长度,配合slice的负数索引更方便:
js let str = "20200202 10:00:00"; let lastEight = str.slice(-8); // "10:00:00"
你瞧,这样写比算长度再substring的方式要灵活多了。 -
结合substring截取后几位:
substring虽然不支持负数索引,但可以结合字符串length来实现:
js let str = "20200202 10:00:00"; let len = str.length; let lastEight = str.substring(len - 8, len); // "10:00:00" -
substr的特殊用法:
substr截取长度的特性很适合从某个点开始截固定长度的内容,譬如:
js let str = "Hello JavaScript"; let result = str.substr(6, 10); // "JavaScript"
但是,老铁们,记住substr可能会在某些环境下不被支持,慎用哈。
总结一下,熟悉这些截取妙招,日常处理字符串全靠它们,效率蹭蹭往上涨,写代码简直太带劲啦!

相关问题解答
-
substring和slice的区别到底是什么呀?
哎,这俩乍一看挺像的对吧,但细节满满。一个大区别是slice支持负数索引,这点超实用,可以从后面数字符,超级灵活;而substring呢,负数就自动变0,没法玩负数那套。还有,substring会自动帮你把start和end顺序调正,而slice就不会,若start比end大,它直接给你空字符串。总而言之,就是slice更“聪明”点儿,substring简单点。 -
substr方法还能用吗?会不会被废弃了?
嗯,这个嘛,substr虽然方便,但官方已经不推荐了,特别是在现代浏览器环境,未来可能就没了支持。它最明显的优势是按长度截取,不过兼容性和可维护性考虑,建议大家尽量用slice和substring,尤其是新项目里不要用substr啦,别被坑咯! -
为什么substring不支持负数索引呢?
这是它设计上的一个“小遗憾”。substring设计目的是从字符串某个确定的区间切割,中间索引都得是非负整数,若给负数会变成0,不去支持负数是为了防止逻辑混乱。虽然这种设计不算特别灵活,但它就是这么干脆,这也是slice出现的大优势之一。 -
出现字符串截取需求,什么时候用substring最好?
哇,这个就简单啦,如果你要截取指定区间片段,而且你的索引都是非负整数、顺序也很明确,再或者说代码需要兼容比较老的环境,那substring绝对是个靠谱选择。它稳定,语义清晰,处理边界也挺智能。简单点说,想要稳稳当当、不想折腾负数索引,substring就正合适啦!
本文来自作者[狄云霆]投稿,不代表跃庆号立场,如若转载,请注明出处:https://www.mingcaifu.com/zhishi/202512-ySuBFVOy4jk.html
评论列表(3条)
我是跃庆号的签约作者“狄云霆”
本文概览:JS字符串截取方法都有哪些 怎么用才更合适 哎,说到JavaScript里截取字符串,真是经常碰到,大家伙儿总想找个快捷靠谱的办法。其实常用的主要就三个函数:slice、sub...
文章不错《JS字符串截取方法有哪些 JS截取字符串slice substring substr区别分析》内容很有帮助