zoukankan      html  css  js  c++  java
  • javaScript中slice, substring,substr三者区别以及用法扩展

    substr定义
    substr() 方法可在字符串中抽取从 开始 下标开始的指定数目的字符。

    提示: substr() 的参数指定的是子串的开始位置和长度,因此它可以替代 substring() 和 slice() 来使用。
    在 IE 4 中,参数 start 的值无效。在这个 BUG 中,start 规定的是第 0 个字符的位置。在之后的版本中,此 BUG 已被修正。
    ECMAscript 没有对该方法进行标准化,因此反对使用它。

    注意: substr() 方法不会改变源字符串。
    substring定义
    substring() 方法用于提取字符串中介于两个指定下标之间的字符。
    截取start(包括)到end(不包括)之间的字符串
    允许参数为负数(最后一位为-1)
    注意:以两个参数中较小一个作为起始位置,较大的参数作为结束位置
    slice定义
    slice(start, end) 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
    使用 start(包含) 和 end(不包含) 参数来指定字符串提取的部分。
    字符串中第一个字符位置为 0, 第二个字符位置为 1, 以此类推。
    提示: 如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。
    start的位置必须要在end之前,否则返回空。
    substr与substring的区别与用法
    首先,他们都接收两个参数,substr接收的则是起始位置和所要返回的字符串长度,而slice和substring接收的是起始位置和结束位置(不包括结束位置)。看下面例子:
    var str ='welcome back';
    console.log(str.substr(2,5)); //lcome
    console.log(str.substring(2,5)); //lco
    console.log(str.slice(2,5)); //lco
    接着,当接收的参数是负数时,substr则仅仅是将第一个参数与字符串长度相加后的结果作为第一个参数;substring则干脆将负参数都直接转换为0;slice会将它字符串的长度与对应的负数相加,结果作为参数。代码如下:
    var str ='welcome back';
    console.log(str.substr(-3)); //ack
    console.log(str.substring(-3)); //welcome back
    console.log(str.slice(-3)); //ack

    console.log(str.substr(3,-4)); //空字符串
    console.log(str.substring(3,-4)); //wel
    console.log(str.slice(3,-4)); //come
    注意:IE对substr接收负值的处理有错,它会返回原始字符串。
    扩展
    类数组转数组:

  • 相关阅读:
    SVN
    git
    电商架构
    django
    linux单项目发布流程
    pandas的基本功能(一)
    Swift 添加自定义响应事件
    Swfit中视图跳转
    移动设备默认不播放媒体文件间接解决办法
    HTML5 使用sessionStorage实现页面返回刷新
  • 原文地址:https://www.cnblogs.com/baidei/p/13497616.html
Copyright © 2011-2022 走看看