slice 、 substr 、replace
slice( 参数1 [,参数2] ) (注意不要让【参数1】下标越过【参数2】下标,否则会得到空字符串,且【参数2】是不包含在截取范围内的)
参数1:截取字符的【起始下标】。
值为正,则找到对应下标 。例如值为 1,则是字符串从第二个字符开始截取,如 “abcd”,slice(1,2) --> "b" ,值为正时,数值是 从 0 开始往后面数;

值为负,则从后面倒数着往前面找起始下标位置。例如值为 -4,则是从字符串倒数第四个数开始进行截取,如 " 123456 " , slice(-4,4) --> "34" ,故当值为负数时,值是从1开始。也就是将参数1取绝对值,然后再依次往前面数个数即可,无需再将参数1的值从 0 开始 。
下图的 str.length 为 17

参数2:截取字符的【结束下标】,此参数为可选,若没有此参数,则从起始下标位置开始,截取到字符串末尾 。
值为正,寻找到对应下标即可,但切记,并不包含当前位置,而是当前位置的前一位下标。例如 "123456" , slice(2,4) ---> “34”

值为负,下标的处理与参数1一样。

var str = "123456";
str.slice(2,-4) ---> ""
解析:因为当【参数2】为 -4 时,找到的是 str 中的字符 “3” ,字符 “3” 所在的下标为 2。但是,因为截取的字符是不包含【参数2】所对应下标的,所以下标需要 减1 。所以值为 -4 时, 所截取的字符变为 从下标2开始截取到下标1 ,这显然是不可能取得值。所以,此时【参数1】 的下标 2,已经越过 【参数2】 的下标 1,故为 空字符串。
str.slice(2,-3) ---> "3"
解析: 而当【参数2】为 -3 时,找到字符 “4” 所在的下标 3,但因为【参数2】没有被包含在截取字符中的特殊性,下标需要 减1,所以实际被截取的结束位置是 下标2 的位置。所以为 -3 ,截取的字符就是 从下标2开始截取到 下标2 的位置,得到字符 “3” 。
substr( 参数1,参数2)
参数1:截取字符串的起始位置,从 0 开始。
值为正,从下标0开始寻找对应下标即可。例如 "123456" , str.substr(4,1); ---> "5"
值为负,将值取绝对值,然后依次往前面数 值的个数即可 。 str.substr(-4,1); ----> “3"

参数2:截取字符的个数。可选,若无此参数,则从起始位置,截取到字符串末尾。不能为负数 。
replace:替换字符(暂不是很明白,只生简略记录下)
replace( 参数1,参数2 )(默认情况只替换匹配到的第一个匹配项,若使用了正则表达式之类的特殊符号,后续记录)
参数1:为原字符中需要替换为新字符的已有的字符
参数2:为需要替换成的新字符
slice 、 substr 、replace的更多相关文章
- php中strstr、strrchr、substr、stristr四个函数的区别总结
php中strstr.strrchr.substr.stristr四个函数的区别总结 投稿:junjie 字体:[增加 减小] 类型:转载 时间:2014-09-22我要评论 这篇文章主要介绍了php ...
- php中strstr、strrchr、substr、stristr四个函数用法区别
php中strstr.strrchr.substr.stristr四个函数用法区别: php中strstr strrchr substr stristr这四个字符串操作函数特别让人容易混淆,常用的是s ...
- bool盲注中用到的截取字符串的函数(mid、substr、left)
介绍一下常用的:mid.substr.left 1.mid()函数 此函数为截取字符串一部分.MID(column_name,start[,length]) 参数 描述 column_name 必需. ...
- 数仓的字符截取三胞胎:substrb、substr、substring
摘要:下面就来给大家介绍这三个函数在字符截取时的一些用法与区别. 本文分享自华为云社区<GaussDB(DWS)中的字符截取三胞胎>,作者:我站在北方的天空下 . 在GaussDB(DWS ...
- js数组与字符串处理 slice、splice、substring、substr、push、pop、shift、reverse、sort、join、split
数组 方法 1.在数组末尾添加.删除元素 push()方法可以接收任意数量的参数,把它们逐个添加到数组的末尾,并返回修改后数组的长度.改变原数组 pop()方法则从数组末尾移除最后一个元素,减少数组的 ...
- js中的slice()、substring()、substr()、split()、join()、indexof()
在js中字符截取函数有常用的三个slice().substring().substr()了,下面我来给大家介绍slice().substring().substr()函数在字符截取时的一些用法与区别吧 ...
- 浅析字符串操作方法slice、substr、substring及其IE兼容性
在截取字符串时常常会用到substr().substring().slice()方法,有时混淆之间的用法,故总结下. slice() 定义:接受一个或者两个参数,第一个参数指定子字符串的开始位置. ...
- oracle中replace、length、lengthb、substr、substrb函数
1.replacereplace(x,y,z)返回值为将字符串X中的Y串用Z串替换后的结果字符串. replace(x,y)返回值将字符串X中为Y串的地方删除例:epacel('aaabbb','bb ...
- javascript中substring()、substr()、slice()的区别
在js字符截取函数有常用的三个slice().substring().substr()了,下面我来给大家介绍slice().substring().substr()函数在字符截取时的一些用法与区别吧. ...
- js字符串和数组操作,容易混淆的方法总结(slice、substring、substr、splice)
平时工作中,很少静下心来总结基础知识,总觉得自己会用了,有点飘了,直到碰壁之后才懂得基础知识的重要性.大牛告诉我,一次写对,是不是可以不用F12去调试了?是不是省了时间?简直是面红耳赤,无地自容.在这 ...
随机推荐
- 操作系统 - epoll中的ET和LT
参考 https://www.quora.com/What-is-meant-by-edge-triggering-and-level-triggering http://man7.org/linux ...
- Lenet 神经网络-实现篇(1)
Lenet 神经网络结构为: ①输入为 32*32*1 的图片大小,为单通道的输入: ②进行卷积,卷积核大小为 5*5*1,个数为 6,步长为 1,非全零填充模式: ③将卷积结果通过非线性激活函数: ...
- iframe子页面之间值传递
<div style="width:100%;height: 100%;"> <div style="width:74%;height: 70%;flo ...
- Linux下调试caffe
参考博客:https://blog.csdn.net/xiaoyezi_1834/article/details/50724875 使用Anjuta 我使用的是ubuntu18.04,安装命令: su ...
- Educational Codeforces Round 78 (Rated for Div. 2)E(构造,DFS)
DFS,把和当前结点相连的点全都括在当前结点左右区间里,它们的左端点依次++,然后对这些结点进行DFS,优先对左端点更大的进行DFS,这样它右端点会先括起来,和它同层的结点(后DFS的那些)的区间会把 ...
- zabbix-server报错:No route to host
前戏: 我在VM虚拟机中创建了2个liunx系统(rhel7和cent7),一个用作zabbix服务端,另一个用作zabbix客户端.但是用服务端监控客户端时图标是红色的监控不了,报错信息为:Get ...
- 洛谷 P1494 [国家集训队]小Z的袜子(莫队)
题目链接:https://www.luogu.com.cn/problem/P1494 一道很经典的莫队模板题,然而每道莫队题的大体轮廓都差不多. 首先莫队是一种基于分块的算法,它的显著特点就是: 能 ...
- 对于使用secureFX上传文件到centos7 的时候,以及不同的用户解压文件,对于文件操作权限的实验
本以为以一个用户胡如root登录了SecureFx,之后选择了root的家目录下的一个software目录,之后上传 以root用户远程登录LINUX系统 查看文件 之后再验证普通用户zhaijh登录 ...
- Python - 运行流程图, call graph, 调用图
解决方案 pycallgraph(感觉直接用pycallgraph grahviz命令生成的图并不是我想要的) 如何去阅读并学习一些优秀的开源框架的源码? - mailto1587的回答 - 知乎 h ...
- IE6下的png不透明问题
前几天刚做完一个小需求,但是在兼容ie方面用了比较久的时间,主要是切面那边用的背景图都是png格式的,而经过查找知道,ie6对png图片透明部分渲染效果是不透明的,我看到的是淡淡的绿色,简单的处理方式 ...