JS字符串截取方法有哪些 JS截取字符串slice substring substr区别分析

JS字符串截取方法都有哪些 怎么用才更合适

哎,说到JavaScript里截取字符串,真是经常碰到,大家伙儿总想找个快捷靠谱的办法。其实常用的主要就三个函数:slice、substring和substr。它们都能帮你拿到想要的那部分字符串,但用起来有点细节不一样,弄明白了,写代码就顺溜多了。

  1. substring方法
    - 用法:string.substring(startIndex, endIndex)
    - 它从起始位置截取到结束位置(不包括结束位置)中间的内容。
    - 注意啦,如果开始索引大于结束索引,它会自动换个顺序帮你截,挺smart的。
    - 不支持负数索引哦,给负数参数会当成0处理。
    - 不改变原字符串,返回一个新字符串,超级安全。

  2. slice方法
    - 用法:string.slice(startIndex, endIndex)
    - 和substring类似,也是截取[startIndex, endIndex)的部分。
    - 牛逼的是它支持负数索引!比如-3就代表倒数第三个字符,超级灵活。
    - 不过如果开始索引大于结束索引,和substring不一样,slice会返回空字符串。
    - 也是返回新字符串,原串完好无损。

  3. substr方法
    - 用法:string.substr(startIndex, length)
    - 从startIndex开始,截取指定长度的字符串。
    - 它也支持负数起始位置,挺方便!
    - 但是这个方法嘛有点小尴尬,官方建议以后别用太多,兼容性有点小坑,特别是某些旧版浏览器。
    - 同样不改变原字符串。

这三个函数你要用哪个,得看场景:
- 想按位置截,substring很简单;
- 需要支持负数索引,slice靠谱;
- 要按长度截,那substr能派上用场,但要注意兼容性。

js substring

怎么截取字符串的开头和结尾 快速搞定你需要的内容

OK,咱们聊聊一些常见的小需求,截取字符串前面几位或者后面几位,该咋整?很简单,掌握下面这些绝对稳:

  1. 截取前几位
    比如要拿字符串最开始的前三个字母,直接用slice或者substring就能搞定:
    js let str = "HelloWorld"; let frontThree = str.substring(0, 3); // "Hel" // 或者 let frontThreeSlice = str.slice(0, 3); // "Hel"
    非常直观吧,起始位置写0,结束位置写你想要的长度就行。

  2. 截取后几位
    要获取字符串末尾的几个字符,咱们就得用到字符串长度减去要截取的长度,配合slice的负数索引更方便:
    js let str = "20200202 10:00:00"; let lastEight = str.slice(-8); // "10:00:00"
    你瞧,这样写比算长度再substring的方式要灵活多了。

  3. 结合substring截取后几位
    substring虽然不支持负数索引,但可以结合字符串length来实现:
    js let str = "20200202 10:00:00"; let len = str.length; let lastEight = str.substring(len - 8, len); // "10:00:00"

  4. substr的特殊用法
    substr截取长度的特性很适合从某个点开始截固定长度的内容,譬如:
    js let str = "Hello JavaScript"; let result = str.substr(6, 10); // "JavaScript"
    但是,老铁们,记住substr可能会在某些环境下不被支持,慎用哈。

总结一下,熟悉这些截取妙招,日常处理字符串全靠它们,效率蹭蹭往上涨,写代码简直太带劲啦!

js substring

相关问题解答

  1. substring和slice的区别到底是什么呀?
    哎,这俩乍一看挺像的对吧,但细节满满。一个大区别是slice支持负数索引,这点超实用,可以从后面数字符,超级灵活;而substring呢,负数就自动变0,没法玩负数那套。还有,substring会自动帮你把start和end顺序调正,而slice就不会,若start比end大,它直接给你空字符串。总而言之,就是slice更“聪明”点儿,substring简单点。

  2. substr方法还能用吗?会不会被废弃了?
    嗯,这个嘛,substr虽然方便,但官方已经不推荐了,特别是在现代浏览器环境,未来可能就没了支持。它最明显的优势是按长度截取,不过兼容性和可维护性考虑,建议大家尽量用slice和substring,尤其是新项目里不要用substr啦,别被坑咯!

  3. 为什么substring不支持负数索引呢?
    这是它设计上的一个“小遗憾”。substring设计目的是从字符串某个确定的区间切割,中间索引都得是非负整数,若给负数会变成0,不去支持负数是为了防止逻辑混乱。虽然这种设计不算特别灵活,但它就是这么干脆,这也是slice出现的大优势之一。

  4. 出现字符串截取需求,什么时候用substring最好?
    哇,这个就简单啦,如果你要截取指定区间片段,而且你的索引都是非负整数、顺序也很明确,再或者说代码需要兼容比较老的环境,那substring绝对是个靠谱选择。它稳定,语义清晰,处理边界也挺智能。简单点说,想要稳稳当当、不想折腾负数索引,substring就正合适啦!

本文来自作者[狄云霆]投稿,不代表跃庆号立场,如若转载,请注明出处:https://www.mingcaifu.com/zhishi/202512-ySuBFVOy4jk.html

838
狄云霆的头像狄云霆签约作者

文章推荐

发表回复

作者才能评论

评论列表(3条)

  • 狄云霆的头像
    狄云霆 2025年12月06日

    我是跃庆号的签约作者“狄云霆”

  • 狄云霆
    狄云霆 2025年12月06日

    本文概览:JS字符串截取方法都有哪些 怎么用才更合适 哎,说到JavaScript里截取字符串,真是经常碰到,大家伙儿总想找个快捷靠谱的办法。其实常用的主要就三个函数:slice、sub...

  • 狄云霆
    用户26080119 2025年12月06日

    文章不错《JS字符串截取方法有哪些 JS截取字符串slice substring substr区别分析》内容很有帮助