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去调试了?是不是省了时间?简直是面红耳赤,无地自容.在这 ...
随机推荐
- nfs 动态文件挂载读写权限设置
nfs 动态文件挂载读写权限设置 待办 ll 命令查看文件夹权限 参考设置共享文件夹https://www.linuxidc.com/Linux/2018-11/155331.htm
- Homebrew安装和Mac使用
软件安装 1.Homebrew安装 ruby环境: curl -sSL https://get.rvm.io | bash -s stable 官网方式: /usr/bin/ruby -e & ...
- P1558 色板游戏 线段树(区间修改,区间查询)
题意: 给n,m,k,n长度,k个操作,m种颜色 操作C:输入A,B,C,区间[A,B]变成C颜色,可能A>B,所以要确保A<B 操作P:输入A,B,区间[A,B]的颜色种类 思路: 因为 ...
- 结构体sizeof()问题与字节对齐
32位机器上定义如下结构体: struct xx { long long _x1; char _x2; int _x3; char _x4[2]; static int _x5; }; int xx: ...
- centos 6.10 安装mysql 5.7.27
操作系统Centos 6.10 64位 Mysql 版本 5.7.27 , 从官网下载 该教程是Mysql shell安装脚本,脚本运行结束后需要重置密码,以及必要的授权操作等 该教程对外端口设置为5 ...
- 转载:进程退出状态--waitpid status意义
最近遇到一个进程突然退出的问题,由于没有注册signalhandler所以没有捕捉到任何信号. 但是从log中看到init waitpid返回的status为0x008b,以前对status不是很了解 ...
- XFire调用CXF参数为Null的问题
最近,领导分配了一个任务,做接口联调.情况是这样,对方客户升级了接口采用CXF,而我们还是用的XFire1.2.6,首先就遇到了这个问题:XFire调用CXF参数为Null的问题 . 在网上搜了一大堆 ...
- java并发框架--Fork-Join
并行计算 Fork-Join 关键类 例子 package sumTest2; /** * 计算1-10000000的和 * 适用范围:计算不知道计算量大小的计算 */ import java.uti ...
- Python - 用python实现split函数
# pattern支持字符或者字符串 def my_split(string, pattern): ret = [] len_pattern = len(pattern) while True: in ...
- C语言随笔2: rom ram 及其运行的过程
内存的分配方式 五个区 :堆区.栈区.全局区.文字常量区.程序代码区 这五个区是ram中的.或者说,堆栈段.数据段.代码段 而rom中,没有堆区和栈区,只有数据段和代码段. ram是在程序运行是的内存 ...