zoukankan      html  css  js  c++  java
  • javascript 中slice,substr,substring方法的对比

    实际开发过程中,字符串是一种最常用的一种数据类型,而在程序中对字符串的操作也是十分繁琐,javascript中就提供了很多字符串相关的方法,然而由于方法过多,很多方法功能有交叉,参数有雷同,容易使用混淆而难以选择。哈哈,你有没有遇到类似的情况。为了以后使用时能顺手拈来,赶快来一起总结一下吧!

    javascript有三种取子字符串的方法 slicesubstrsubstring它们各有千秋,那么何时使用哪个方法比较快捷高效呢,我们就来回忆一下它们各自的用法吧。

    1.slice——提取字符串的片断,并在新的字符串中返回被提取的部分。

      1)语法:stringObject.slice(start[,end])

      2)参数:①start必需,正数表示字符串起始下标,负数表示从目标字符串的尾部算起。 

                   ②end可选参数,省略时默认表示从start开始到目标字符串的尾部,为负数表示从目标字符串的尾部算起

      3)返回值:一个新的字符串。包括字符串 stringObject 从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有字符。

    2.substr——在字符串中抽取从下标开始的指定数目的字符。

        1)语法:stringObject.substr(start[,length])

      2)参数:①start必需,正数表示字符串起始下标,负数表示从目标字符串的尾部算起。

                    ②length可选参数,省略时默认表示从start开始到目标字符串的尾部。

      3)返回值:一个新的字符串,包含从 stringObject 的 start(包括 start 所指的字符) 处开始的 length 个字符。如果没有指定 length,那么返回的字符串包含  从 start 到 stringObject 的结尾的字符。

      注:ECMAscript 没有对该方法进行标准化,因此反对使用它。

      总结: slice() 和 substr() 方法不同的是,substring() 不接受负的参数。

    3.substring ——提取字符串中介于两个指定下标之间的字符。

      1)语法:stringObject.substring(start[,stop])

      2)参数:①必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。

            ②可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。

            如果省略该参数,那么返回的子串会一直到字符串的结尾。

      注意:①如果参数 start 与 stop 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。

         ②如果 start 比 stop 大,那么该方法在提取子串之前会先交换这两个参数。

      3)返回值:一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度为 stop 减start

      

    总结

    :与 slice() 和 substr() 方法不同的是,substring() 不接受负的参数。

    整理如下:

    方法 strObj.slice(start[,end])
    strObj.substr(start[,length]) strObj.substring(start[,stop])
    第1个参数 正数表示字符串起始下标,负数表示从目标字符串的尾部算起。 一个非负的整数。
    必需。表示字符串的起始位置。
    第2个参数 正数表示字符串起始下标,负数表示从目标字符串的尾部算起。 一个非负的整数。
    可选。
    第1个参数为负数 从字符串末尾计算位置 视为0
    第2个参数为负数 从字符串末尾计算位置 视为长度0,返回空字符串 交换参数,负数视为0
    第1个参数大于第2个参数 返回空字符串 从第一个参数开始截取长度为第二个参数的字符串 交换参数再进行截取

    综上可以总结三者有如下区别:

      1.第2个参数。slice,substring中表示字符串的结束位置,substr中表示长度。

      2.参数可否为负数。slice方法比较灵活两个参数都可以为负数,substr只有第一个参数可以为负数,substring两个参数都为非负数。

      3.第1个参数大于第2个参数时。substring比较灵活,回交换参数位置,substr第二个参数是长度故不受影响,slice开始位置在结束位置后面则返回空字符串。

    注意:负数表示从字符串末尾开始计算,例如:-1表示字符串最后一个字符,-2表示字符串倒数第二个字符;

        在IE下可能并不支持负数从末尾开始计算的方式。

    参考文章:http://www.cnblogs.com/ider/p/js-slice-vs-substr-vs-substring-table.html

    日益努力,而后风生水起。众生皆苦,你也不能认输O(∩_∩)O
  • 相关阅读:
    elasticsearch版本不同,批量查询也不相同
    lucene源码分析(4)Similarity相似度算法
    lucene源码分析(3)facet实例
    lucene-solr源码编译导入eclipse--转
    lucene源码分析(2)读取过程实例
    lucene源码分析(1)基本要素
    javascript 的位操作符转换推断
    WinJS.Binding.List与kendo.data.ObservableArray
    迷你MVVM框架 avalonjs 0.84发布
    迷你MVVM框架 avalonjs 入门教程
  • 原文地址:https://www.cnblogs.com/yingliyu/p/6035810.html
Copyright © 2011-2022 走看看