一、substring与substr

 

substring

substr

概述

返回字符串两个索引之间(或到字符串末尾)的子串 返回字符串从指定位置开始到指定长度的子串

语法

参数

indexStart:一个 0 到字符串长度之间的整数

indexEnd:可选,一个 0 到字符串长度之间的整数

start:开始提取字符的位置,可为负值

length:可选。提取的字符数

描述

1. indexStart = indexEnd,返回一个空字符串

2. indexStart > indexEnd,则效果是两个参数调换了一样

3. 省略 indexEnd,提取字符一直到字符串末尾

4. 任一参数 < 0 或为 NaN,则被当作 0

5. 任一参数 > strLength(字符串长度),则被当作strLength

1. start < 0,则被看作 strLength + start(从字符串倒数算起)

2. start < 0 && abs(start) > strLength,则start = 0

3. start >= strLength,返回一个空字符串

4. 任意参数为 NaN,则被当作 0

5. length <= 0,返回一个空字符串

代码

在线执行

 

1)substring描述

返回字符串两个索引之间(或到字符串末尾)的子串。

  1. var anyString = "Mozilla";//字符串长度为7
  2. // 输出 "Moz"
  3. console.log(anyString.substring(0,3));
  4. console.log(anyString.substring(3,0));//indexStart > indexEnd,则像两个参数对换
  5. console.log(anyString.substring(3,-3));//indexEnd < 0,则indexEnd = 0
  6. console.log(anyString.substring(3,NaN));//indexEnd = NaN,则indexEnd = 0
  7. console.log(anyString.substring(-2,3));//indexStart < 0,则indexStart = 0
  8. console.log(anyString.substring(NaN,3));//indexStart = NaN,则indexStart = 0
  9.  
  10. // 输出 "lla"
  11. console.log(anyString.substring(4,7));
  12. console.log(anyString.substring(7,4));//indexStart > indexEnd,则像两个参数对换,同上
  13.  
  14. // 输出 ""
  15. console.log(anyString.substring(4,4));//indexStart = indexEnd
  16.  
  17. // 输出 "Mozilla"
  18. console.log(anyString.substring(0,7));
  19. console.log(anyString.substring(0,10));//indexEnd > anyString.length,indexEnd=anyString.length。
  20. console.log(anyString.substring(0));//省略 indexEnd,提取字符一直到字符串末尾

2)substr描述

返回字符串从指定位置开始到指定长度的子串。

  1. var str = "abcdefghij";//长度为10
  2. // 输出bc
  3. console.log(str.substr(1,2));
  4. // 输出hi,start=7
  5. console.log(str.substr(-3,2));//start < 0,则被看作 strLength + start,其中 strLength 为字符串的长度
  6. // 输出hij
  7. console.log(str.substr(-3));//start < 0,省略length
  8. // 输出bcdefghij
  9. console.log(str.substr(1));
  10. // 输出ab start=0
  11. console.log(str.substr(-20,2)); //abs(start) > 字符串的长度,start=0
  12. // 输出""
  13. console.log(str.substr(20,2)); //start >= 字符串的长度,输出空字符串
  14. // 输出""
  15. console.log(str.substr(1,0));
  16. console.log(str.substr(1,-5));//length <= 0,返回一个空字符串
  17. console.log(str.substr(1,NaN));//end非数字, end=0
  18. // 输出a
  19. console.log(str.substr(NaN, 1));//start非数字, start=0

二、slice与splice

 

slice

splice

概述

将数组的一部分的浅拷贝, 返回到从开始到结束(结束不包括)选择的新数组对象

原始数组不改变

通过删除现有元素和/或添加新元素来更改数组的内容

原始数组会改变

语法

参数

begin:可选,开始提取的索引(从0开始),可为负值

end:可选,结束提取的索引(包含begin,不包含end),可为负值

start:开始修改的索引(从0开始),可为负值

deleteCount:可选,要移除的数组元素的个数

item1,item2...:可选,要添加进数组的元素,从start位置开始

返回

一个含有提取元素的新数组

由被删除的元素组成的一个数组

如果没有删除元素,则返回空数组。

描述

1. 原始数组没有修改,浅复制了原数组的元素

2. 任何参数为负数,改变计算方式,从数组倒数算起

3. 任何参数为NaN,则被当作 0

4. start 省略,start=0

5. start > end,输出空数组

1. 原始数组被修改,在指定位置可添加任意多个元素

2. start <0 为负数,改变计算方式,从数组倒数算起

3. start 或 deleteCount 为NaN,则被当作 0

4. start 省略,输出空数组

5. deleteCount > 数组长度,则deleteCount=数组长度

代码

在线执行

 

1) slice描述

将数组的一部分的浅拷贝, 返回到从开始到结束(结束不包括)选择的新数组对象,原始数组不改变。

  1. var fruits = ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango'];
  2. var citrus = fruits.slice(1, 3);//包含1 不包含3
  3. // 输出 ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango']
  4. console.log(fruits);//原始数组没有修改
  5. // 输出 ['Orange', 'Lemon']
  6. console.log(citrus);//浅复制了原数组的元素
  7.  
  8. // 输出 ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango']
  9. console.log(fruits.slice());// start 省略,start=0
  10. // 输出 ['Apple', 'Mango']
  11. console.log(fruits.slice(-2));// start < 0,从数组倒数算起
  12. // 输出 ['Apple']
  13. console.log(fruits.slice(-2, -1));// start < 0 && end < 0,从数组倒数算起,倒数第二个元素到倒数第一个元素
  14. // 输出 ['Orange', 'Lemon', 'Apple']
  15. console.log(fruits.slice(1, -1));
  16. // 输出 []
  17. console.log(fruits.slice(2, 1));// start > end,输出空数组
  18. // 输出 ['Banana']
  19. console.log(fruits.slice(NaN, 1));// start非数字,start=0
  20. // 输出 []
  21. console.log(fruits.slice(1, NaN));// end非数字,end=0

2) splice描述

通过删除现有元素和/或添加新元素来更改数组的内容,原始数组会改变。

  1. var myFish = ["angel", "clown", "mandarin", "sturgeon"];
  2. // 输出 []
  3. console.log(myFish.splice(2, 0, "drum"));// 空,没有删除元素
  4. console.log(myFish);//原数组被改变 myFish=["angel", "clown", "drum", "mandarin", "sturgeon"]
  5. // 输出 ["drum"]
  6. console.log(myFish.splice(2, 1));// 有删除元素 myFish=["angel", "clown", "mandarin", "sturgeon"]
  7. myFish.splice(2, 1, "splice", "parrot");
  8. console.log(myFish);//添加两个元素 myFish=["angel", "clown", "splice", "parrot", "sturgeon"]
  9. // 输出 ["parrot", "sturgeon"]
  10. console.log(myFish.splice(-2));// start < 0,从数组倒数算起 myFish=["angel", "clown", "splice"]
  11. // 输出 []
  12. console.log(myFish.splice(-2, -1));// start < 0 && deleteCount < 0,空数组
  13. console.log(myFish.splice(1, -1));//空数组
  14. console.log(myFish.splice(1, NaN));// deleteCount非数字,deleteCount=0
  15. console.log(myFish.splice());// start省略
  16. // 输出 ["angel"]
  17. console.log(myFish.splice(NaN, 1));// start非数字,start=0 myFish=["clown", "splice"]
  18. // 输出 ["clown", "splice"]
  19. console.log(myFish.splice(0, 10));// deleteCount > 数组长度

JavaScript中几个相似方法对比的更多相关文章

  1. JavaScript中Object.prototype.toString方法的原理

    在JavaScript中,想要判断某个对象值属于哪种内置类型,最靠谱的做法就是通过Object.prototype.toString方法. ? 1 2 var arr = []; console.lo ...

  2. Jquery中$(document).ready()与传统JavaScript中的window.onload方法的区别(2016/8/3)

    Jquery中$(document).ready()的作用类似于传统JavaScript中的window.onload方法,不过与window.onload方法还是有区别的. 1.执行时间       ...

  3. JavaScript中事件绑定的方法总结

    最近收集了一些关于JavaScript绑定事件的方法,汇总了一下,不全面,但是,希望便于以后自己查看. JavaScript中绑定事件的方法主要有三种: 1 在DOM元素中直接绑定 2 JavaScr ...

  4. Javascript中alert</script>的方法

    Javascript中alert</script>的方法: <%@ page language="java" import="java.util.*&q ...

  5. URL地址中中文乱码详解(javascript中encodeURI和decodeURI方法、java.net.URLDecoder.encode、java.net.URLDecoder.decode)

    引言: 在Restful类的服务设计中,经常会碰到需要在URL地址中使用中文作为的参数的情况,这种情况下,一般都需要正确的设置和编码中文字符信息.乱码问题就此产生了,该如何解决呢?且听本文详细道来. ...

  6. JavaScript中this的使用方法总结

    JavaScript中this的使用方法总结 在JavaScript中,this的使用分为四种场景,具体请参考阮一峰老师关于this的讲解 第一种情况是纯函数使用 var x =1 ; functio ...

  7. javaScript中的indexOf使用方法

    JavaScript中的indexOf使用方法 概述 indexOf大小写敏感,其中的O要大写 对于字符串而言 indexOf返回字符串第一次出现的位置,若没有出现返回-1 1 var str = & ...

  8. Jquery中$(document).ready() 和 JavaScript中的window.onload方法 比较

    Jquery中$(document).ready()的作用类似于传统JavaScript中的window.onload方法,不过与window.onload方法还是有区别的.   1.执行时间 win ...

  9. Javascript中定时器的使用方法

    Javascript中定时器的使用方法 1.间隔定时器(每隔一段时间执行一次代码) 格式:setInterval(函数,时间) //时间单位是毫秒,每隔设置的时间执行函数里的内容一遍(一直执行) // ...

随机推荐

  1. UVA 11551 Experienced Endeavour

    矩阵快速幂. 题意事实上已经告诉我们这是一个矩阵乘法的运算过程. 构造矩阵:把xi列的bij都标为1. 例如样例二: #include<cstdio> #include<cstrin ...

  2. LPC2478的GPIO使用详解

    GPIO使用 LPC2478的GPIO是不能断开时钟的,上电就连接.处理GPIO主要就下面几步 1.      设置为普通IO模式 2.      设置输入输出方向 3.      设置值 以下寄存器 ...

  3. 微信小程序之----弹框组件modal

    modal modal类似于javascript中的confirm弹框,默认情况下是一个带有确认取消的弹框,不过点击取消后弹框不会自动隐藏,需要通过触发事件调用函数来控制hidden属性. 官方文档 ...

  4. 怎样编制excel序列目录

    怎样编制序列目录 原帖内容:http://www.excelpx.com/forum.php?mod=viewthread&tid=164190&extra=%26page%3D1&a ...

  5. 使用ExecutorCompletionService 管理线程池处理任务的返回结果

    在我们日常使用线程池的时候,经常会有需要获得线程处理结果的时候.此时我们通常有两种做法. 1. 使用并发容器将callable.call() 的返回Future存储起来.然后使用一个消费者线程去遍历这 ...

  6. CSS中怎么让DIV居中

    CSS 如何使DIV层水平居中 今天用CSS碰到个很棘手的问题,DIV本身没有定义自己居中的属性, 网上很多的方法都是介绍用上级的text-align: center然后嵌套一层DIV来解决问题. 可 ...

  7. 代码中使用bitmap资源并加载到控件上

    1.从res/drawable/XX.jpg里引用图片资源: 1. Resources res = getResources(); Bitmap inDrawable= BitmapFactory.d ...

  8. 封装bt轮播图淡入淡出效果样式

    <!--BT轮播图-->    <div data-ride="carousel" class="carousel slide carousel_inn ...

  9. mongo db 启动停止

    1.下载压缩包,解压,bin目录放在path中: 2.cmd中输入mongod --dbpath d:\xx\yy\data 启动了 3.如果错误关闭,到d:\xx\yy\data中删除.lock文件 ...

  10. 使用AIR进行移动APP开发常见功能和问题(下)

    1.  Air如何判断android.ios 平台网络连接状态? Android,使用as3原生api: if(NetworkInfo.isSupported)//只有android支持 Networ ...