js中substring和substr两者区别和使用方法

 更新时间:2015年11月09日 15:45:40   投稿:lijiao  
这篇文章主要介绍了js中substring和substr两者区别和使用方法,每一个步骤都有相应的文字介绍,感兴趣的小伙伴们可以参考一下

在开始之前,先回顾下js中下标(数组元素/字符串中字符下标):
下标总是从0开始计数,例如
var arr = [1,2,3];//数组的长度为3,元素下标依次为:0,1,2
arr[0] = 1,arr[1]=2..
字符串类似:如var s = "hello";//字符串长度为5,第一个字符'h'的下标为0,依次类推

String.substring( ):用于返回一个字符串的子串
用法如下:string.substring(from, to)
其中from指代要抽去的子串第一个字符在原字符串中的位置
to指代所要抽去的子字符串最后一个字符的后一位(这个参数可以不加)

下面就对String.substring( )做举例

1、string.substring(from):此时相当于从from位置截取到原字符串末尾

var s = "hello";
s.substring(1);//就是从下标为1的字符(这里是'e')开始起到字符串末尾全部截取,最终获得子串"ello"


2、string.substring(from, to):从from位置截取到to-1的位置

var s = "hello";
s.substring(1,3);//相当于从位置为1的字符截取到位置为2的字符,得到子串为:"el"

String.substr( ):作用也是抽去一个子串,但是它和上面的String.substring( )有所不同
用法如下:string.substr(start, length)
start:指代截取子串开始下标
length:截取子串的长度(可省略)
1、string.substr(start, length):先举个例子来说明:

var s = "hello";
s.substr(1,3);//从下标为1的字符开始截取3个字符长度,最后子串为:ell

补充两种特殊情况:
a、第二个参数超过了剩余字符长度

var s = "hello";
s.substr(1,7)//这种情况下默认从,start位置到原字符串末尾,即返回:"ello"

b、第一个参数为负数
这种情况,从字符串尾部开始计算,-1指字符串最后一个字符,-2指倒数第二个字符...依次类推

var s = "hello";
s.substr(-3,2)//即从倒数第三个字符开始起截取2个长度,获得:"ll"

2、string.substr(start)不带length参数,默认指代从start位置截取到字符串末尾

var s = "hello";
s.substr(3)//"lo"

以上就是关于js中substring和substr区别与用法的详细介绍,大家可以结合之前的相关文章进行学习,希望对大家的学习有所帮助。

相关文章

  • Bootstrap框架实现广告轮播效果

    Bootstrap框架实现广告轮播效果

    这篇文章主要为大家详细介绍了Bootstrap框架结合JavaScript实现广告轮播特效,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • jquery 实现输入邮箱时自动补全下拉提示功能

    jquery 实现输入邮箱时自动补全下拉提示功能

    大家在做Web项目,都会有注册登录模块,如果是邮箱注册,想要在输入@后触发下拉框显示各个邮箱的功能。下面介绍一款jQuery实现输入邮箱的时候,可自动补全邮箱地址,也可称为是“输入提示”的功能,比如输入aaa时,自动变成aaa@163.com,有效提升网页的人性化体验
    2015-10-10
  • JS操作时间 - UNIX时间戳的简单介绍(必看篇)

    JS操作时间 - UNIX时间戳的简单介绍(必看篇)

    下面小编就为大家带来一篇JS操作时间 - UNIX时间戳的简单介绍(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • 微信小程序tabBar 返回tabBar不刷新页面

    微信小程序tabBar 返回tabBar不刷新页面

    这篇文章主要介绍了微信小程序tabBar 返回tabBar不刷新页面,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • JS超出精度数字问题的解决方法

    JS超出精度数字问题的解决方法

    一般参数值不能超过16位,如果超出16都是用0替代,导致我们查询不到自己想要的结果,这篇文章主要给大家介绍了关于JS超出精度数字问题的解决方法,需要的朋友可以参考下
    2021-07-07
  • javascript实现函数柯里化与反柯里化过程解析

    javascript实现函数柯里化与反柯里化过程解析

    这篇文章主要介绍了javascript实现函数柯里化与反柯里化过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • BootStrap 智能表单实战系列(十)自动完成组件的支持

    BootStrap 智能表单实战系列(十)自动完成组件的支持

    这篇文章主要介绍了BootStrap 智能表单实战系列(十)自动完成组件的支持 的相关资料,需要的朋友可以参考下
    2016-06-06
  • 详解bootstrap的modal-remote两种加载方式【强化】

    详解bootstrap的modal-remote两种加载方式【强化】

    本篇文章主要介绍了详解bootstrap的modal-remote两种加载方式【强化】,具有一定的参考价值,有兴趣的可以了解一下。
    2017-01-01
  • JavaScript Class类实例讲解

    JavaScript Class类实例讲解

    ES6提供了更接近面向对象(注意:javascript本质上是基于对象的语言)语言的写法,引入了Class(类)这个概念,作为对象的模板,下面这篇文章主要给大家介绍了关于JavaScript ES6中class定义类的相关资料,需要的朋友可以参考下
    2022-11-11
  • 浏览器兼容性问题大汇总

    浏览器兼容性问题大汇总

    本文给大家介绍了42种浏览器兼容性问题大汇总的相关知识,本文介绍的非常详细,感兴趣的朋友一起学习吧
    2015-12-12

最新评论