• JS 的 substr() 方法


    前言

    substr() slice() 都可以对字符串进行截取操作,它们的使用方法有些类似,最大的区别就是第二个参数 , substr() 的第二个参数 是 截取字符串的长度 slice() 的第二个参数是 截取字符串的 结束下标。(个人感觉两者的区别不大,它们的作用类似

    substr()

    语法

    javascript中,substr( )方法用于 从指定索引位置截取指定长度的子字符串,它包含两个参数,第一个参数表示 准备截取的子字符串起始下标,第二个参数表示 截取的长度 (注意 和 slice 区分一下 )

    string.substr(start,length)

    参数:

    start(必需):要截取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说, -1 表示最后一个字符,-2  表示倒数第二个字符,以此类推。这对于左侧字符长度不固定时非常有用

    length(可选):表示截取的长度如果省略了该参数,则默认截取开始位置至原字符串的结尾

    注意:substr( ) 方法不会改变原来的字符串。


    基础用法(普通截取字符串

    下标从 0  开始

    1. var str = '123456';
    2. // 截取整个字符串
    3. console.log(str.substr(0)); // 123456
    4. // 从索引位置2开始截取3个长度的字符
    5. console.log(str.substr(2,3)); // 345
    6. // 从倒数第4个字符开始截取至原字符串的结尾
    7. console.log(str.substr(-4)); // 3456
    8. // 从倒数第2个字符开始截取2个长度的字符
    9. console.log(str.substr(-2,2)); // 56
    10. // 输出原字符串 , 不会改变原字符串
    11. console.log(str); // 123456

    截取日期

            很多时候我们从数据库获取的时间都是   年-月-日 时:分:秒  的格式,而我们在页面上通常都会只显示年月日,如果只有少数几个数据的话,使用格式化时间有点麻烦,最简单操作的就是直接截取自己想要的数据。

    1. var time ="2022-09-07 14:27:56";
    2. var Time = time.substr(0,10);
    3. console.log(Time); // 2022-09-07

    获取扩展名

    获取字符串的最后一个点号的下标位置,然后从其后的位置开始截取 4 个字符。

    1. var s = "hello world!欢迎来到PHP中文网!https://www.php.cn/course/list/56.html";
    2. var b = s.substr(s.lastIndexOf(".") + 1, 4); //截取最后一个点号后4个字符
    3. console.log(b); // html

    如果省略第二个参数,则表示截取从起始位置开始到结尾的所有字符。考虑到扩展名的长度不固定,省略第二个参数会更灵活。

    var b = s.substr(s.lastIndexOf(".") + 1);

     slice()

    语法

    slice( )方法包含两个参数,第一个参数表示 准备截取的子字符串起始下标,第二个参数表示 截取的结束下标 (注意 和 substre 区分一下)

    string.slice(start , end)

    参数:

    start(必需):要截取的子串的起始下标。必须是数值。可以是负数

    end(可选):表示截取的结束下标如果省略了该参数,则默认截取开始位置至原字符串的结尾。( 注意这个结束下标是取不到的,整个的范围是一个 左闭右开的区间 ,比如 slice(0,1) 意思是 截取 [0,1) 位置的字符,就只有一个字符被截取

    注意:substr( ) 方法不会改变原来的字符串。

     基本用法

    1. var str = '123456';
    2. // 截取整个字符串
    3. console.log(str.slice(0)); // 123456
    4. // 从索引位置2开始截取到下标3的字符
    5. console.log(str.slice(2,3)); // 3
    6. // 从倒数第4个字符开始截取至原字符串的结尾
    7. console.log(str.slice(-4)); // 3456
    8. // 输出原字符串 , 不会改变原字符串
    9. console.log(str); // 123456

    对比两个方法

    substr() 的第二个参数 是 截取字符串的长度 ,

    slice() 的第二个参数是 截取字符串的 结束下标。

    两个方法都不会改变原字符串

    1. var str = '123456'
    2. console.log(str.slice(1,2)) // 2
    3. console.log(str.substr(1,2)) // 23
    4. console.log(str) // 123456

    文章如有错误,恳请大家提出问题,本人不胜感激 。 不懂的地方可以评论,我都会 一 一 回复

    文章对大家有帮助的话,希望大家能动手点赞鼓励,大家未来一起努力     长路漫漫,道阻且长

  • 相关阅读:
    Headers were already written Wanted to override status code 400 with 200
    Confluence 自定义展示页面
    20. mediasoup服务器的布署与使用
    HashMap、ConcurrentHashMap、HashTable和TreeMap 为啥有的支持key支持null,有的value支持null?
    Leetcode—2520.统计能整除数字的位数【简单】
    2022年贵州省职业院校技能大赛(高职组)“软件测试”赛项竞赛规程
    Docker 镜像构建之 Dockerfile
    [Java反序列化]—C3P0反序列化
    数据湖统一元数据与权限
    Linux 下 使用 Ekho 进行TTS文本转语音
  • 原文地址:https://blog.csdn.net/qq_52855464/article/details/126743860