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的更多相关文章

  1. php中strstr、strrchr、substr、stristr四个函数的区别总结

    php中strstr.strrchr.substr.stristr四个函数的区别总结 投稿:junjie 字体:[增加 减小] 类型:转载 时间:2014-09-22我要评论 这篇文章主要介绍了php ...

  2. php中strstr、strrchr、substr、stristr四个函数用法区别

    php中strstr.strrchr.substr.stristr四个函数用法区别: php中strstr strrchr substr stristr这四个字符串操作函数特别让人容易混淆,常用的是s ...

  3. bool盲注中用到的截取字符串的函数(mid、substr、left)

    介绍一下常用的:mid.substr.left 1.mid()函数 此函数为截取字符串一部分.MID(column_name,start[,length]) 参数 描述 column_name 必需. ...

  4. 数仓的字符截取三胞胎:substrb、substr、substring

    摘要:下面就来给大家介绍这三个函数在字符截取时的一些用法与区别. 本文分享自华为云社区<GaussDB(DWS)中的字符截取三胞胎>,作者:我站在北方的天空下 . 在GaussDB(DWS ...

  5. js数组与字符串处理 slice、splice、substring、substr、push、pop、shift、reverse、sort、join、split

    数组 方法 1.在数组末尾添加.删除元素 push()方法可以接收任意数量的参数,把它们逐个添加到数组的末尾,并返回修改后数组的长度.改变原数组 pop()方法则从数组末尾移除最后一个元素,减少数组的 ...

  6. js中的slice()、substring()、substr()、split()、join()、indexof()

    在js中字符截取函数有常用的三个slice().substring().substr()了,下面我来给大家介绍slice().substring().substr()函数在字符截取时的一些用法与区别吧 ...

  7. 浅析字符串操作方法slice、substr、substring及其IE兼容性

    在截取字符串时常常会用到substr().substring().slice()方法,有时混淆之间的用法,故总结下.   slice() 定义:接受一个或者两个参数,第一个参数指定子字符串的开始位置. ...

  8. oracle中replace、length、lengthb、substr、substrb函数

    1.replacereplace(x,y,z)返回值为将字符串X中的Y串用Z串替换后的结果字符串. replace(x,y)返回值将字符串X中为Y串的地方删除例:epacel('aaabbb','bb ...

  9. javascript中substring()、substr()、slice()的区别

    在js字符截取函数有常用的三个slice().substring().substr()了,下面我来给大家介绍slice().substring().substr()函数在字符截取时的一些用法与区别吧. ...

  10. js字符串和数组操作,容易混淆的方法总结(slice、substring、substr、splice)

    平时工作中,很少静下心来总结基础知识,总觉得自己会用了,有点飘了,直到碰壁之后才懂得基础知识的重要性.大牛告诉我,一次写对,是不是可以不用F12去调试了?是不是省了时间?简直是面红耳赤,无地自容.在这 ...

随机推荐

  1. python正则子组匹配

    子组匹配返回找到的第一个匹配项 []表示匹配列表中的任意一个,返回找到的第一个 这样可以发现如果要查找字母的话可以使用[a-z],返回找到的第一个字母 查找数字使用[0-9],返回找到的第一个数字相当 ...

  2. IntelliJ IDEA 2017.3尚硅谷-----如何创建模块

  3. Lenet 神经网络-实现篇(2)

    Lenet 神经网络在 Mnist 数据集上的实现,主要分为三个部分:前向传播过程(mnist_lenet5_forward.py).反向传播过程(mnist_lenet5_backword.py). ...

  4. 【译】PHP 内核 — zval 基础结构

    [译]PHP 内核 - zval 基础结构 原文地址:http://www.phpinternalsbook.com/php7/internal_types/zvals/basic_structure ...

  5. Googletest Primer

    Googletest Primer 原文地址:https://github.com/google/googletest/blob/master/googletest/docs/primer.md In ...

  6. 【Python】字符串(String)

    python中单引号和双引号使用完全相同. 使用三引号('''或""")可以指定一个多行字符串. 转义符 '\' 反斜杠可以用来转义,使用r可以让反斜杠不发生转义.. 如 ...

  7. C语言运算符详解

    运算符是一种告诉编译器执行特定的数学或逻辑操作的符号.C 语言内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 本章将逐一介绍算术运 ...

  8. SQL语句 分组 多行合并成一行

    ,,'')) FROM Table d GROUP by Id 另外: sql 单引号转义:两个单引号转义为一个单引号 set @sql='STUFF((SELECT '','' + Names FR ...

  9. LAMP调优

    1.编译安装httpd前修改: 在安装包目录下  vim include/ap_release.h 搜索:BASEVENDOR   修改其八项隐藏curl -I http://地址  中的Server ...

  10. redis (一) --- 基本使用

    概述 redis是基于key-value 我们所说的数据类型实际是 key-value 中的 value .文章主要介绍的是redis 几个重要的数据类型的使用. 简单使用 //keys patter ...