问答详情
源自:7-11 提取指定数目的字符substr()

如果starPos为负数且绝对值大于字符串长度,starPos为0?怎么理解

 如果starPos为负数且绝对值大于字符串长度,starPos为0。

看了一下w3school,看到:“重要事项:在 IE 4 中,参数 start 的值无效。在这个 BUG 中,start 规定的是第 0 个字符的位置。在之后的版本中,此 BUG 已被修正。”

意思是:starPos的值无效时,规定为第0个字符位置吗?

提问者:qq_miaomiaodoub_0 2016-08-11 16:00

个回答

  • ergfsersdf
    2016-08-11 16:49:05
    已采纳

    首先   你已经看不到IE4了现在,然后starPos最好理解的方式就是这个方法一般都是不会用在出现负数的情况上面,而一般情况只需要考虑正数或者指定字符串之后的正数的情况比较多。

    然后来说一下starPos的绝对值的问题,starPos值的绝对值如果超过了字符串的最长长度的大小,这个值默认0,就是字符串的第一个开始截取你需要的字符串,如果starPos为负且正好绝对值是length-1那么截取位置其实本质也是0。

    解释完了  : )

  • 慕村1994845
    2016-09-20 21:10:53

    比方数组长度为7,startPos为-8;那么我这样理解,从尾部开始往头部数,-1,-2,-3...当数到头部第一位时,动作会停止,然后取值首位,而首位的检索号就是0,那么此时startPos为0

  • 我有酒和故事
    2016-08-11 17:17:53

    一般都是ie 8以上了

  • 小钱boss
    2016-08-11 16:46:11

    也不知道呢,没碰到这个问题,兼容的问题现在不考虑IE以下了