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

  • 相关阅读:
    分布式跑批的实现流程
    Java1.8新特性Stream流处理集合元素
    RocketMQ消息存储和查询原理(引用清幽之地 清幽之地的博客)
    Markdown使用持续更新
    一次百万请求mq堆积的生产排查
    Spring Boot打包部署修改jar文件名
    Spring Boot的应用启动器
    Spring Boot配置文件application.properties
    Eclipse中出现.classPath(拒绝访问)
    PHP文件上传的相关配置
  • 原文地址:https://www.cnblogs.com/zmc-change/p/6394369.html
Copyright © 2011-2022 走看看