相同点:都是对字符串进行截取,返回一个新的字符串,不会改变原字符串;

不同点:

substring(start, stop) ; 返回下标start 到 stop -1 之间的字符串;

substring参数说明
参数 说明
start 必需。一个非负的整数,规定要提取的子串的第一个字符在 string 中的位置。
 stop 可选。一个非负的整数,比要提取的子串的最后一个字符在 string 中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。

1.substring() 方法返回的子串包括 start 处的字符,但不包括 stop 处的字符。

//chrome控制台
> var a = '0123456789'
< undefined
> a.substring(1,5)
< "1234"

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

//chrome控制台
> var a = '0123456789'
< undefined
> a.substring(1,1)
< ""

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

//chrome控制台
> var a = '0123456789'
< undefined
> a.substring(5,1) //=>a.substring(1,5)
< "1234"

4.如果 start 和 stop 有负数,那么会把该参数自动转为0,然后继续上述规则。

//chrome控制台
> var a = '0123456789'
< undefined
> a.substring(5,-1) //=>a.substring(5,0) => a.substring(0,5)
< "1234"

5.如果 start 和 stop 有小数(负数直接进行第4条),那么会把该参数向下取整,然后继续上述规则。

//chrome控制台
> var a = '0123456789'
< undefined
> a.substring(5,2.5) //=>a.substring(5,2) => a.substring(2,5)
< "234"

6.如果 start 和 stop 有字符串,那么会先进行parseInt(),如果转换结果为NaN,那么就转换为0,其余情况继续上述规则。

//chrome控制台
> var a = '0123456789'
< undefined
> a.substring(5,'2.5') // =>a.substring(5,2) => a.substring(2,5)
< "234"
> a.substring(5,'ss') // =>a.substring(5,2) =>a.substring(5,0) => a.substring(2,5)
< "234"

substr

substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。

语法

string.substr(start,length)

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

参数

参数 描述
start 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。
length 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 string 的开始位置到结尾的字串。

说明

该方法与substring()最大的区别在于第二个参数是你需要截取字符串的长度,而不是位置。

1.substr() 方法返回的子串从 start 处的字符开始(包括)往后截取length长度,如果超过最末端就到最末端结束。

//chrome控制台
> var a = '0123456789'
< undefined
> a.substr(1,5)
< "12345"
> a.substr(1,15) //只会到最末端,多了没用
< "123456789"

2.start可以取负值,表示从字符串尾部往头部开始数(从右到左,注意是从1开始,比如-1 指字符串中最后一个字符),但是截取长度还是从左到右,如果超过最末端就到最末端结束。

//chrome控制台
> var a = '0123456789'
< undefined
> a.substr(-4,2) //-4表示从右开始数第4个,就是'6',然后取2个长度的字符串,就是'67'
< "67"

3.如果length负值,那么会直接当成0处理,最终返回""

//chrome控制台
> var a = '0123456789'
< undefined
> a.substr(4,-2) // => a.substr(4,0)
< ""

4.如果start或者length为小数,那么会截取小数部分。

//chrome控制台
> var a = '0123456789'
< undefined
> a.substr(1.2,5.2) // => a.substr(1,5)
< "12345"

5.如果 start 和 length 有字符串,那么会先进行parseInt(),如果转换结果为NaN,那么就转换为0,其余情况继续上述规则。

//chrome控制台
> var a = '0123456789'
< undefined
> a.substr('aa','5') // => a.substr(0,5)
< "01234"

slice

slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。

语法

string.slice(start,end)

参数

参数 描述
start 必须。要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。
end 可选。紧接着要抽取的片段的结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。

该方法的两个参数均为位置坐标,和subtring比较像,区别就是该方法支持负数,并且不会交换位置,始终是从startend,如果该区间不存在,那么返回''

1.slice() 方法返回的子串包括 start 处的字符,但不包括 end 处的字符。

//chrome控制台
> var a = '0123456789'
< undefined
> a.slice(1,5)
< "1234"

2.当start或者end负值时,定位方式和substr一直,从右往左数,从1开始。

//chrome控制台
> var a = '0123456789'
< undefined
> a.slice(1,-1)//起始点从第1(包括)开始,结束点为从右往左数第1个(不包括)
< "12345678"

2.startend的顺序始终是从左到右,如果最终start的位置在end的右边,那么返回''

//chrome控制台
> var a = '0123456789'
< undefined
> a.slice(2,1)//2所在的位置是'2',1所在的位置是'1',从2=>1,方向相反,返回为空
< ""
> a.slice(-2,1)//-2所在的位置是'8',1所在的位置是'1',从8=>1,方向相反,返回为空
< ""
> a.slice(-2,-1)//-2所在的位置是'8',-1所在的位置是'9',从8=>9,方向正常,返回为'8'
< "8"

3.其他情况和substring处理方式一致

//chrome控制台
> var a = '0123456789'
< undefined
> a.slice('xx','5.5')// => a.slice(0,5)
< "01234"

js中对字符串操作的方法substring(),substring(),slice()相关推荐

  1. js中关于字符串操作的命令

    str.length 获取长度 str.toUppercase() 转换为大写 str.toLowercase() 转换为小写 str.split(参数x) 字符串的剪裁 返回一个数组 x:某种规则 ...

  2. [记录] JavaScript 中的字符串操作

    字符串原型: 通过修改字符串的原型,可以为所有字符串添加公共方法 String.prototype.startwith = function(text) {return this.indexOf(te ...

  3. js中截取字符串前几位的两种方法slice()substring()

    在Javascript使用字符串中,我们不一定需要全部的字符串,这时就需要截取字符串.本文主要介绍js中截取字符串前几位的两种方法:1.使用slice() 方法:2.使用substring() 方法. ...

  4. json对象、字符串-数组和数学对象中的相关方法、BOM对象、JS中的DOM操作

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 json对象 字符串对象的相关方法 获取字符串长度 length 清除两侧的空白 trim [ python的strip ] ...

  5. js中string字符串转换为JSON对象 - 方法大全(4种)

    js中string字符串转换为JSON对象 - 方法大全(4种) jQuery插件支持的转换方式: 示例: //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对 ...

  6. js中的字符串方法与数组方法总结

    js中的字符串方法与数组方法总结 1.字符串方法 2.数组方法

  7. java和js中替换字符串的方法

    //java中字符串的替换方法: String a = "吴林飞-1a_,唐姐-2,周帅-3"; String f = a.replaceFirst("-", ...

  8. 在JS中反转字符串的方法

    在JS中反转字符串的方法 方法一: 字符串也是按照索引排列的 字符串也可以使用索引获取某一位字符 使用for 循环遍历,遍历字符串中的每一位数 倒着拼接到新的字符串上面 <script>f ...

  9. JavaScript -- 时光流逝(三):js中的 String 对象的方法

    JavaScript -- 知识点回顾篇(三):js中的 String 对象的方法 (1) anchor(): 创建 HTML 锚. <script type="text/javasc ...

最新文章

  1. 浅说——九讲背包之01背包
  2. 【python教程入门学习】如何把Python学好
  3. 【边缘计算】对边缘计算的理解与思考
  4. Android混合推送,MUI框架-推送配置核心代码-个推推送
  5. CVPR14与图像视频检索相关的论文
  6. Junit中测试插入等无返回值的操作要注意的问题
  7. 模拟实现priority_queue优先级队列
  8. Redis事务与MySQL事务的区别
  9. 正则匹配图片地址 php,php正则匹配图片地址
  10. 机器学习:过拟合问题与其正则化解决
  11. linux shell脚本教程
  12. Linux之分析bin文件的10种方法
  13. 淘宝APP用户体系运营拆解​
  14. ECshop 模板制作教程
  15. delphi 18位身份证号码的校验
  16. 3GPP 资源 使用、查找 教程
  17. 先进制造技术论文_轴承先进锻造工艺及制造技术
  18. 不同长度的字符串/中文串相似度对比算法
  19. WRT之Crosswalk简介
  20. ATW热泵市场现状及未来发展趋势分析

热门文章

  1. python二维列表添加_Python二维数组
  2. Python基础与大数据应用实验——水仙花数
  3. java线程创建和使用_java线程创建和使用
  4. 3dsmax 关节刷权重技巧
  5. 接入阿里iconfont图标库详细教程
  6. 混合App 框架选型
  7. 毒鸡汤 舔狗语录PHP源码
  8. Java线程学习实例——采用同步锁,互斥锁与同步锁的区别,synchronized的使用方法
  9. 激活层是每一层都有吗_书评:6本二次元小说,每一本都很有想象力,你都读过吗?...
  10. php 人脸识别接口,php调用百度人脸识别接口查询数据库人脸信息实现验证登录功能...