字符串截取 slice,substr,substring 的区别
一 只传递一个参数时候
let str = '0123456';
str.slice(5); //'56'
str.substr(5); // '56'
str.substring(5); // '56'
str.slice(-2); // '56'
str.substr(-2); // '56'
str.substring(-2);//'0123456'
总结:当传递一个参数时候,slice 和 substr表现一致,都是取初始index,返回该index到末尾的字符串。而substring 出现负数,会自动转化为0
二 传递两个参数时候
let str = '0123456';
str.slice(1,5); // '1234'
str.substr(1,5);// '12345'
str.substring(1,5);// '1234'
str.slice(1,-2); // '1234'
str.substr(1,-2); // '' -2会转化为0,表示从index为1开始,后面取0个数
str.substring(1,-2); // '0' -2会转化为0,并将初始值设为更小的一个值 (0,1)
总结:当传两个参数时候
1 str.slice(x,y)
截取[x,y) 区间内的值,当存在负值,可通过反向逆推转化成正数,比如上例中 -2 => 5 ,str.slice(1,-2) = str.slice(1,5);
注意,当转化后,如果末尾值小于初始值,则 返回'',比如 str.slice(2,0)
即:slice 第一个参数为初始截取位置为闭区间,第二个参数为截取的末尾位置为开区间,当存在负数时,可通过位置转化为正值,当 转化之后 初始值大于末尾值的,则返回空
str.substr(x,y)
x为初始值,当为负数时可通过位置比较转化为正数, y为截取的长度。当y大于能够截取的长度时候,会截取当前初始值到字符串末尾的字符串,即str.subStr(4,100) === str.substr(4);当y为0或者负数时,表示截取位数为0,返回 ''str.substring(x,y)
x,y中有负数的直接转化为0,然后 以小的数为初始点,大的数为截止点,前闭后开
三 总结
slice,substr,substring 都不会改变原来字符串,仅返回截取的字符串
字符串截取 slice,substr,substring 的区别的更多相关文章
- js 字符串截取函数substr,substring,slice之间的差异
js 字符串的截取,主要有三个函数,一般使用三个函数:substr,substring,slice. 而这三个函数是不完全一样的,平时很难记住,在这里做下笔记,下次遇到的时候,直接从这里参考,调用合适 ...
- 数组遍历 map()、forEach() 及 字符串切割 split() / 字符串截取 slice()、substring()、substr()
JS数组遍历的几种方式 JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比 第一种:普通for循环 代 ...
- slice,substr,substring的区别
<!DOCTYPE html> <!-- To change this license header, choose License Headers in Project Prope ...
- 字符串截取slice() substring() substr()的区别?
获取子字符串 slice() substr() substring() 不会修改字符串本身,他们只是返回一个基本类型的字符串值 var str='abcdefghijklmn'; ...
- 字符串截取 及 substr 和 substring 的区别
1..字符串截取 str.substr(0, 1) // 获取字符串第一个字符 str.substr(-1) // 获取字符串最后一个字符 str.charAt(str.length - 1) // ...
- JavaScript取子串方法slice,substr,substring对比表
在程序语言中,字符串可以说是最常用的一种类型,而在程序中对字符串的操作也是十分频繁.当程序语言自带多种字符串操作的方法时,用该语言编程程序时就有很多的便利性,提高开发的效率.但是当方法过多,甚至目的相 ...
- js截取字符串方法整理slice(), substr(), substring(), split()
substr(start,length) stringObject.substr(start,length) //start,截取起始下标,-1 指字符串最后一个字符,-2 指倒数第二个字符开始 ...
- slice splice(数组) 和 slice substr substring split (字符串)的区别
array.slice(start,end)slice()如果不传入参数二,那么将从参数一的索引位置开始截取,一直到数组尾如果两个参数中的任何一个是负数,array.length会和它们相加 stri ...
- js-DOM ~ 05. Date日期的相关操作、string、查字符串的位置、给索引查字符、字符串截取slice/substr/substring、去除空格、替换、大小写、Math函数、事件绑定、this
内置对象: 语言自带的对象/提供了常用的.基本的功能 打印数组和字符串不用for... in / 打印josn的时候采用for...in Date 获取当前事件: var date = ...
- [javascript string] slice();substr();substring();之间的区别
今天遇到这个问题,发现ぜんぜんわすねまます3个方法,直接上代码吧,[网络版本较多就不注明参考过哪些了 -0- ] var test = 'hello world'; //均一位参数测试 console ...
随机推荐
- Lucene索引库维护、搜索、中文分词器
删除索引(文档) 需求 某些图书不再出版销售了,我们需要从索引库中移除该图书. 1 @Test 2 public void deleteIndex() throws Exception { 3 // ...
- linux系统内存爆满的快速解决办法!
首先用free工具检查一下内存的使用情况: $ free -m total used free shared buff/cache available Mem: 15884 207 573 145 1 ...
- linux系统修改不成功/无法修改密码
1.问题描述 新上架的60台浪潮服务器使用某带外装机平台进行统一安装,安装完成后修改用户密码时统一无法修改,使用root账户无法修改其他用户密码,自身根密码也无法修改成功 2.排查问题 因带外装机平台 ...
- JQuery实现tab页
用ul 和 div 配合实现tab 页 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="U ...
- selenium学习之基本操作(一)
通过selenium的使用可以驱动浏览器来模拟加载网页,简单定位元素和获取对应的数据:# find_elements_by_id #(根据id属性值获取元素列表)# find_elements_by_ ...
- JSON.stringify 的使用
一.作用:这个函数的作用主要是为了序列化对象.就是把原来是对象的类型转换成字符串类型(json格式的String类型). 二.语法:JSON.stringify(value[, replacer][, ...
- Codeforces Global Round 11 A~D题解
A.Avoiding Zero 题目链接:https://codeforces.ml/contest/1427 题目大意:给定一个数组a1,a2...,an,要求找出一个a重排后的数组b1,b2,.. ...
- Java 合并Word文档
合并文档可以是将两个包含一定逻辑关系的文档合并成一个完整的文档,也可以是出于方便文档存储.管理的目的合并多个文档为一个文档.下面,就将以上文档操作需求,通过Java程序来实现Word文档合并.合并文档 ...
- Python初学习:简单的练习题
Python初学习 一些见到那的练习题: 初级难度 设计一重量转换器,输入以g为单位的数字后,返回换算结果以Kg为单位的结果 中级难度 设计一个求直角三角形斜边长的函数,(以两个直角边为参数,求最长边 ...
- 实验四 用PS制作横幅广告
实验四 用PS制作横幅广告 [实验目的] ⑴.了解广告设计应用 ⑵.学会利用PS制作简单的横幅广告 [实验条件] ⑴.个人计算机一台 ⑵.个人计算机中预装Windows7操作系统和浏览器及Photo ...