• JavaScript--substring 和 substr 方法手记


    1. substring 方法

      作用: 提取调用这个方法的字符串的指定位置的字符, 不对原字符串操作, 提取结果返回为新字符串.

      格式: string.substring(start, stop)

      参数:

        start: 表示从该字符串中的哪个下标开始提取, 提取到的字符包括原字符串中处于这个下标的字符.

        stop: 表示提取到哪个下标为止(不包括原字符串中所处这个下标的字符, 切记和 start 相反).

        当参数只有一个且为正数时, 会截取从这个下标开始(包括处于这个下标的字符)一直到原字符串的最后一个字符(从左到右).

      当参数为两个正数, 且 start < stop, 会截取处于这俩下标之间的字符, 当然包含 'start' 不包含 'stop'. 

    -------------------------------------------------------------------------------------

    以下的情况参数都是负数, 但提取的字符串是一样的, 可理解为该参数被当做 0 后做的处理.

      

    -------------------------------------------------------------------------------------

     知道两个参数为负时会转为 0 , 那么当 start 和 stop 都为正, stop < start 时是什么情况呢?

    有人将这种情况理解为  当 stop < start, 此方法会在提取字符之前将两个参数调换位置.

    -------------------------------------------------------------------------------------

     2. substr 方法

      作用: 在提取调用这个方法的字符串中, 提取从某个下标开始(从左到右)限定长度的字符串, 不对原字符串操作, 返回提取到的字符串.

      格式: string.substr(start, length);

      参数: 

        start: 和 substring 中的 start 类似, 表示从哪个下标的字符开始提取(也包含处于这个下标的字符).

        length: 表示要提取的字符串的长度.

    -------------------------------------------------------------------------------------

      当 start > 0, length 没写时, 会提取包含处于该下标的字符开始到原字符串结尾所有的字符(从左到右数).

      即: "qwerasdf".substr(1)   ==> werasdf

    -------------------------------------------------------------------------------------

      当 start < 0, length 没写时, 该方法会将 start 转为正数, 并倒着从右向左地提取以1为最小下标的 |start| 个字符, 说的绕口, 一看便知.

      

      此时的 start 不单单表示起始位置, 还有限定长度的作用, 但参数 length 存在时, 又不一样了.

    -------------------------------------------------------------------------------------

      "hijklmn".substr(-1, 0) ==> "" 

      "hijklmn".substr(-1, 2) ==> "n"

      "hijklmn".substr(-1, 8) ==> "n"   能看出 length 值长度超过字符串长度会被无视.

      "hijklmn".substr(0, 8) ==> "hijklmn"

      "hijklmn".substr(1, -3) ==> ""      start > 0, length < 0, 此时不会提取到字符, 会返回空字符串.

     

    在此抛砖引玉, 有误导之处还请不吝指点 ^^.

  • 相关阅读:
    Linux cron
    web报表工具FineReport常用函数的用法总结(文本函数)
    web报表工具FineReport常用函数的用法总结(文本函数)
    oracle instr函数
    死锁的例子和 synchronized 嵌套使用
    死锁的例子和 synchronized 嵌套使用
    Perl 监控批量错误
    Linux以百万兆字节显示内存大小
    Linux以GB显示内存大小
    Linux以KB显示内存大小
  • 原文地址:https://www.cnblogs.com/vlovecode/p/6027409.html
Copyright © 2020-2023  润新知