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 或负数,将返回一个空字符串

  • 相关阅读:
    java.net.BindException: Cannot assign requested address: bind
    Caused by: com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'name': was expecting ('true', 'false' or 'null')
    springMVC上传错误StandardMultipartHttpServletRequest
    常用软件
    虚拟机修改静态ip
    linux下脚本做成服务
    Unable to resolve persistence unit root URL
    MyBatis对不同数据库的主键生成策略
    MyBatis定义复合主键
    MongoDB安装,启动,注册为windows系统服务
  • 原文地址:https://www.cnblogs.com/zmc-change/p/6394369.html
Copyright © 2011-2022 走看看