zoukankan      html  css  js  c++  java
  • js基础--substr()和substring()的区别

      最近做项目的时候,字符串截取一直用的是substr()方法,有时候需要截取的内容是中间部分的话就很麻烦,需要分两次,第一次截取前半部分,第二次在第一次的基础上截取后半部分。写了几次之后总觉得没对,应该还有更适合的方法,百度之后发现原来还有一个叫做substring()的方法。这里做一下比较总结。先来看啊可能它们之间的定义吧。

    substr(start,length)

    定义:substring() 方法用于提取字符串中介于两个指定下标之间的字符。

    参数 描述
    start 必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。
    stop

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

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

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

    substring(start,stop)

    定义:substring() 方法用于提取字符串中介于两个指定下标之间的字符。

    参数 描述
    start 必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。
    stop

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

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

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

     下面用几个列子说明区别和注意点:

    var number = "1234567890";

    console.log(number.substring(0)); --> "1234567890"

    console.log(number.substring(10)); --> ""

    console.log(number.substring(20)); --> ""//如果start大于length,则返回空""

    console.log(number.substring(-5));--> "1234567890"

    console.log(number.substring(-8));--> "1234567890"

    console.log(number.substring(-1,2));--> "12"

    console.log(number.substring(-1,-2));--> ""//如果 start 或 end 为负数,那么它将被替换为 0

    console.log(number.substring(5,2));--> "345"//如果 start 比 end 大,那么该方法在提取子串之前会先交换这两个参数

    console.log(number.str(0));-->"1234567890"

    console.log(number.str(10));-->""

    console.log(number.str(20));-->""//如果start大于length,则返回空""

    console.log(number.str(-1));-->"0"

    console.log(number.str(-10));-->"1234567890"//如果start为负数,则start=str.length+start

    console.log(number.str(1,2));-->"23"

    console.log(number.str(1,0));

    console.log(number.str(1,-3));-->""//如果 length 为 0 或负数,将返回一个空字符串

  • 相关阅读:
    Educational Codeforces Round 85 D. Minimum Euler Cycle(模拟/数学/图)
    Educational Codeforces Round 85 C. Circle of Monsters(贪心)
    NOIP 2017 提高组 DAY1 T1小凯的疑惑(二元一次不定方程)
    Educational Codeforces Round 85 B. Middle Class(排序/贪心/水题)
    Educational Codeforces Round 85 A. Level Statistics(水题)
    IOS中的三大事件
    用Quartz 2D画小黄人
    strong、weak、copy、assign 在命名属性时候怎么用
    用代码生成UINavigationController 与UITabBarController相结合的简单QQ框架(部分)
    Attempting to badge the application icon but haven't received permission from the user to badge the application错误解决办法
  • 原文地址:https://www.cnblogs.com/zmc-change/p/6394369.html
Copyright © 2011-2022 走看看