slice-substring-substr-split-splice
一、字符串
slice(startIndex, endBeforeIndex)
endBeforeIndex < 0,则 endBeforeIndex 为 负数,第二个参数为字符串长度加上负值,之后如果第二个参数大于第一个参数,则返回空字符串。
substring(startIndex, endBeforeIndex)
endBeforeIndex < 0,则 第二个参数会变成 0,可以看成会变成第一个参数,startIndex 为第二个参数,如果 startIndex 也为 <= 0,则返回字符串。
subStr(startIndex, length)
如果第二个参数省略,默认为字符串长度;
startIndex < 0,则 startIndex 的值可以由字符串长度加上 startIndex;或直接从后面算起。
split(separator, limit)
将字符串分割成数组,separator 为分割的字符,不会返回数组中;limit 是返回的数组长度,可以省略。返回的数组长度比可匹配的 separator 多 1;
separator 前后一定会返回一个数组元素,如果 separator 的后面没有元素了,则以空字符串 '' 表示。
二、数组
splice(array.splice(index, howmany, item1,.....,itemX))
用于添加或删除数组中的元素。注意:这种方法会改变原始数组。
一个参数执行的是删除,参数一是开始删除下标,删除个数从开始下标开始到结束;
两个参数执行的是删除,参数一是开始删除下标,参数二是删除的个数;
三个参数时,如果第二个参数为 0, 则在下标 index 处把第三个参数后面的元素添加到数组中;如果第二个参数不为 0, 则在下标 index 处后开始删除 howmany 个参数,再把 item 各项添加到 index 下标后。
// 012345678
var str = "HTMLCSSJS"; console.log('slice(startIndex, endBeforeIndex)');
console.log( str.slice(1) ); // TMLCSSJS
console.log( str.slice(1, 3) ); // TM
console.log( str.slice(1, -2) ); // str.slice(1, 7); —— TMLCSS
console.log( str.slice(5, -6) ); // str.slice(5, 3); —— 空字符串 console.log('substring(startIndex, endBeforeIndex)');
console.log( str.substring(1) ); // TMLCSSJS
console.log( str.substring(1, 3) ); // TM
console.log( str.substring(1, -2) ); // substring(1, 0) ——> subtring(0, 1); —— H
console.log( str.substring(-1, -2) ); // 空字符串 console.log('substr(startIndex, length)');
console.log( str.substr(1) ); // TMLCSSJS
console.log( str.substr(-1) ); // substr(8); —— S
console.log( str.substr(-2, 4) ); // substr(7, 4); —— JS
console.log( str.substr(-7, 4) ); // substr(2, 4); —— MLCS
console.log('\n'); console.log('str.split(separator, limit)');
console.log( str.split('') ); // (9) ['H', 'T', 'M', 'L', 'C', 'S', 'S', 'J', 'S']
console.log( str.split('', 4) ); // (4) ['H', 'T', 'M', 'L']
console.log( str.split('S') ); // (4) ['HTMLC', '', 'J', '']
console.log('\n'); var arr = [1, 2, 3, 4, 5];
console.log( arr.splice(1, 2) ); // (2) [2, 3] 从下标 1 开始 删除两个元素。返回被删除元素组成的数组
console.log( arr ); // (3) [1, 4, 5]
console.log( arr.splice(2) ); // [5]
console.log( arr ); // (2) [1, 4]
console.log('\n'); var arr2 = [1, 2, 3, 4, 5, 6, 7];
console.log( arr2.splice(1, 0, 123, 'happy') ); // []
console.log( arr2 ); // (9) [1, 123, 'happy', 2, 3, 4, 5, 6, 7]
console.log('\n'); var arr3 = [1, 2, 3, 4, 5, 6, 7];
console.log( arr3.splice(1, 2, 123, 'happy') ); // (2) [2, 3]
console.log( arr3 ); // (9) [1, 123, 'happy', 2, 3, 4, 5, 6, 7]
console.log('\n');
slice-substring-substr-split-splice的更多相关文章
- 字符串截取函数slice, substring, substr
在日常项目需求中,常常会遇到需要截取字符串操作的工作,而ECMAScript为我们提供了原生的截取字符串的函数,而且提供了三个:slice, substring, substr.我们怎么判断在什么时候 ...
- 关于js的string的3个函数slice,substring,substr对比
slice,substring,substr三个函数都是截取字符串,但是对参数的处理有区别 参数处理相似的两个函数式slice和substring slice(start,end)和substring ...
- slice,substring,substr的区别
1.都为正整数//例子数据 var arr = [1,2,3,4,5,6,7], var str = "helloworld!"; //注意这里有个!号也算一位若有空格,空格也算一 ...
- 字符串截取slice() substring() substr()的区别?
获取子字符串 slice() substr() substring() 不会修改字符串本身,他们只是返回一个基本类型的字符串值 var str='abcdefghijklmn'; ...
- JS字符串截取函数slice(),substring(),substr()的区别
在JS中,slice().substring().substr()都有截取字符串的作用,那他们有哪些用法上的区别呢?如果你也有疑惑,这篇文章或许能够帮助到你. 一.substring() substr ...
- 怎样理解String的slice(), subString(), substr()三个方法
String.prototype.slice() 是js字符串的切片工具方法, 用于对字符串做'裁剪'操作, 不改变原字符串. 'helloworld'.slice(0,5); // 'hello'; ...
- javascript篇-slice(),splice(),split(),substring(),substr()的用法以及区别
1.slice(),从已经有的数组中返回选定的元素, 使用范围是:Array,string 语法:obj.slice(start,end) 参数: start: 必需.规定从数组(字符串)的哪个ind ...
- JS中数组和字符串具有的方法,以及substring,substr和slice的用法与区别
String 对象属性 属性 描述 constructor 对创建该对象的函数的引用 length 字符串的长度 prototype 允许您向对象添加属性和方法 String 对象方法 方法 描述 ...
- JavaScript 字符串操作:substring, substr, slice
在 JavaScript 中,对于字符串的操作有 substring, substr, slice 等好多个内置函数,这里给大家推荐一篇介绍 substring, substr, slice 三者区别 ...
- javascript 中slice,substr,substring方法的对比
实际开发过程中,字符串是一种最常用的一种数据类型,而在程序中对字符串的操作也是十分繁琐,javascript中就提供了很多字符串相关的方法,然而由于方法过多,很多方法功能有交叉,参数有雷同,容易使用混 ...
随机推荐
- redis 为什么是单线程的?
一.Redis为什么是单线程的? 因为Redis是基于内存的操作,CPU不是Redis的瓶颈,Redis的瓶颈最有可能是机器内存的大小或者网络带宽.既然单线程容易实现,而且CPU不会成为瓶颈,那就顺理 ...
- Redis 如何设置密码及验证密码?
设置密码:config set requirepass 123456 授权密码:auth 123456
- 抽象的(abstract)方法是否可同时是静态的(static), 是否可同时是本地方法(native),是否可同时被 synchronized 修饰?
都不能.抽象方法需要子类重写,而静态的方法是无法被重写的,因此二者是矛 盾的.本地方法是由本地代码(如 C 代码)实现的方法,而抽象方法是没有实现 的,也是矛盾的.synchronized 和方法的实 ...
- 学习Cobbler(二)
Server端: 第一步,启动Cobbler服务 第二步,进行Cobbler错误检查,执行cobbler check命令 第三步,进行配置同步,执行cobbler sync命令 第四步,复制相关启动文 ...
- 学习FastDfs(一)
一.简介 FastDFS是一个开源的轻量级分布式文件系统,由跟踪服务器(tracker server).存储服务器(storage server)和客户端(client)三个部分组成 fastfds有 ...
- C++ - C语言中数组的另一种常用写法(数组大小可变!!!)
在 C 和 C++ 中,数组在声明过程中,数组名称为 const 指针,不许修改.且数组的大小在声明时被写死,非常不方便. C语言中常用下面代码替代指针. #include <stdio.h&g ...
- 判断集合中存在String字符串 或 判断集合中不存在String字符串
一.使用场景 用于集合中有多个相近的字符,无法使用包含判断 如: 这里如果我想判断以上集合中是否包含"信封件-DE"就会被"信封件-DE2"影响到 毕竟:&qu ...
- css技术之用最高和最宽的限制“max-height和max-width”做图片同比例缩放,达到图片不变形目的,做出批量打印图片功能,页面打印“window.print()”
一.简介 他们是为流而生的,像width/height这种定死的砖头式布局,min-width/max-width就没有存在的意义 ,min-width/max-width一定是自适应布局或流体布局中 ...
- 从CSS盒子模型说起
前言 总括: 对于盒子模型,BFC,IFC和外边距合并等概念和问题的总结 原文地址:从CSS盒子模型说起 知乎专栏:前端进击者 博主博客地址:Damonare的个人博客 为学之道,莫先于穷理:穷理之要 ...
- Angular2入门系列(五)———— 路由参数设置
Angular2入门系列(五)---- 路由参数设置路由配置: { path: '', component: CarProFile, children: [ { path: 'add', compon ...