javascript中String类的subString()方法和slice()方法
在该书2.8.4节中讲到String类中的subString()方法和slice()方法,其用法和返回结果都基本相同,如下示例:
代码如下:
var strObj = new String("hello world");
alert(strObj.slice(3)); // 输出结果:"ol world"
alert(strObj.subString(3)); // 输出结果:"ol world"
alert(strObj.slice(3, 7)); // 输出结果:"lo w"
alert(strObj.subString(3,7)); // 输出结果:"lo w"
由以上代码的输出结果可已看出,slice()方法和subString()方调用方法法和输出结果完全一样,这两种方法返回的都是要处理的字符串的子串,都接受一个或两个参数,第一个参数是要获取的子串的起始位置,第二个参数是要获取子串的终止位置,如果第二个参数省略终止位置就默认为字符串的长度,且两个方法都不改变String对象自身的值。
为什么有两个功能完全相同的方法呢?事实上,这两个方法并不完全相同,不过只在参数为负值时,他们处理参数的方式稍有不同。
对于负数参数,slice()方法会用字符串的长度加上参数,subString()方法将其作为0处理,例如:
代码如下:
var strObj = new String("hello world");
alert(strObj.slice(-3)); // 输出结果:"rld"
alert(strObj.subString(-3)); // 输出结果:"hello world"
alert(strObj.slice(3,-4)); // 输出结果:"lo w"
alert(strObj.subString(3,-4)) // 输出结果:"hel"
这样既可看到slice()和subString()方法的主要不同。当只有参数-3时,slice()返回"rld",subString()则返回"hello world"。这是因为对于字符串"hello world",slice(-3)将被转换成slice(8),而subString(-3)则转化成subString(0)。同样,使用3和-4差别也是很明显。slice()方法将被转换成slice(3,7),与前面的例子相同,返回"lo w"。而subString()方法则将这个两个参数解释为subString(0,3),实际上是:subString(0,3),因为subString()总是把较小的参数作为起始位,较大的数字最为终止位。
相关推荐
-
javascript中substr,substring,slice.splice的区别说明
substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符. stringObject.substr(start,length);start必须,length可选. start 是截取的开始位置的下标,从0开始算起,必须是数字.可以是负数,-1是倒数第一个字符,-2是倒数第二个字符,以此类推. length 是要截取的字符的长度,必须是数字.如果未指定,则从start位置处开始截取到字符串结尾. substr 指定的是字符串的开始下标跟截取长度,所以可以替代substring
-
js字符串截取函数substr substring slice使用对比
常用三个的字符串截取函数:substr substring slice,调用方式如下 复制代码 代码如下: stringObject.slice(start,end) stringObject.substr(start,length) stringObject.substring(start,end) 最明显的是substr,第二个参数是length,是截取长度,其他两个函数的第二个参数都是末尾字符的下标(这里并不包括该下标的字符,只截取到该字符的前一个字符) slice跟substring比,
-
javascript中substring()、substr()、slice()的区别
stringObject.substring(start,stop) 用于提取字符串中介于两个指定下标之间的字符. start必需.一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置. stop可选.一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1.如果省略该参数,那么返回的子串会一直到字符串的结尾. start从0开始 到stop(不包含stop)结束 不接受负的参数. stringObject.substr(start,
-
JavaScript截取字符串的Slice、Substring、Substr函数详解和比较
在JavaScript中,提取子字符串主要是通过 Slice.Substring.Substr 三个方法之一. 复制代码 代码如下: // slice // 语法: string.slice(start [, stop])"Good news, everyone!".slice(5,9); // 'news' // substring // 语法: string.substring(indexA [, indexB])"Good news, everyone!".s
-
javascript中slice(),splice(),split(),substring(),substr()使用方法
1.slice(): Array和String对象都有 在Array中 slice(i,[j]) i为开始截取的索引值,负数代表从末尾算起的索引值,-1为倒数第一个元素 j为结束的索引值,缺省时则获取从i到末尾的所有元素 参数返回: 返回索引值从i到j的数组,原数组不改变 在String中 slice(i,[j]) 参数说明: i为开始截取的索引值,负数代表从末尾算起的索引值,-1为倒数第一个字符 j为结束的索引值,缺省时则获取从i到末尾的所有字符 2.splice() 存在Array中
-
深入浅析JavaScript字符串操作方法 slice、substr、substring及其IE兼容性
在截取字符串时常常会用到substr().substring().slice()方法,有时混淆之间的用法,故总结下. 阅读目录 •slice() •substring() •substr() •总结 slice() 定义:接受一个或者两个参数,第一个参数指定子字符串的开始位置.第二个参数表示子字符串的结束位置(不包括结束位置的那个字符),如果没有传递第二个参数,则将字符串的长度作为结束位置. 1.传递参数为正值情况: var str ="helloWorld"; // 一个参数,则将字
-
js substr、substring和slice使用说明小记
关于substr.substring和slice方法区别的文章,网上搜到了许多,文章内容也基本一致.而后,我将其中一篇文章中的代码挪到本地进行了测试,发现测试结果和原文中的有些出入. 我更相信自己亲自验证过后的代码,随后小记下来,供以后查阅. substr 复制代码 代码如下: document.write("|" + str.substr(0,5) + "|" + "<br />"); document.write("|&
-
javascript中String类的subString()方法和slice()方法
在该书2.8.4节中讲到String类中的subString()方法和slice()方法,其用法和返回结果都基本相同,如下示例: 复制代码 代码如下: var strObj = new String("hello world"); alert(strObj.slice(3)); // 输出结果:"ol world" alert(strObj.subString(3)); // 输出结果:"ol world" alert(strObj.slice(
-
浅谈StringBuilder类的capacity()方法和length()方法的一些小坑
今天在做项目的过程中遇见一个StringBuilder.delete()删除得不到自己期望结果问题,一个截取字符串的问题,总得不到自己所期望的答案: 问题如下: stringBuilder.delete(stringBuilder.capacity() - 5, stringBuilder.capacity()); 此句代码要么报错,要么多删,要么少删,也有时候正确.也有时候得不到自己所想要的字符串: 简单的测试capacity()方法和length()方法的区别如下: StringBuilde
-
也说JavaScript中String类的replace函数
对回调函数的参数说明也很准确: 第一个参数是匹配到的字符串,最后一个是原字符串,倒数第二个参数是匹配到的字符串的在原字符串索引的起始位. 但我很好奇,第二到倒数第三之间的参数又是些什么呢?其实,W3school已经给出了答案: 复制代码 代码如下: replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串.其语法为: stringObject.replace(regexp/substr,replacement) replacement 可以是字符串,也可以
-
详解Java8新特性之interface中的static方法和default方法
为什么要单独写个Java8新特性,一个原因是我目前所在的公司用的是jdk8,并且框架中用了大量的Java8的新特性,如上篇文章写到的stream方法进行过滤map集合.stream方法就是接口Collection中的default方法.所以准备专门写写关于java8新特性的文章,虽然现在10已经发布了.但还是要认真的去了解下新版本的变化. static方法 java8中为接口新增了一项功能:定义一个或者更多个静态方法.用法和普通的static方法一样. 代码示例 public interface
-
JPA findById方法和getOne方法的区别说明
目录 findById方法和getOne方法区别 getOne()方法是JpaRepository接口中定义的 再看findById()方法 spring-data-jpa中findById()的使用 findById方法和getOne方法区别 Jpa基础的CRUD方法继承自接口CrudRepository<T, ID>,包含以下方法: <S extends T> S save(S entity); <S extends T> Iterable<S> sav
-
javascript数组中的slice方法和join方法
目录 一.slice方法 1编辑器部分 2代码部分 3运行结果 二.join方法 1编辑器 2代码部分 3运行结果 前言: 在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说slice和join方法不多说把代码编辑器打开 一.slice方法 1编辑器部分 2代码部分 <html lang="en"> <head> <meta charset="UTF-8" /> <
-
javascript数组中的concat方法和splice方法
目录 一.concat方法 1直接vs打开 2代码块 3运行结果 二.splice方法 1代码部分 2运行结果 前言: 在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说concat和splice方法的使用不多说把代码编辑器打开 一.concat方法 1直接vs打开 2代码块 //功能:合并数组,可以合并一个或多个数组,会返回合并数组之后的数据,不会改变原来的数组: const geyao = ['歌谣'] const fuzhu=["很强"]
-
javascript数组中的reduce方法和pop方法
目录 一.reduce方法 1直接vs打开 2代码部分 3运行结果 二.pop方 1直接vs打开 2代码部分 3运行结果 前言: 在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说foreach和pop方法的使用不多说把代码编辑器打开 一.reduce方法 1直接vs打开 2代码部分 var geyao=[1,3,5] let sum = arr.reduce(function(prev, cur, index, arr) { console.log(pr
-
javascript学数组中的foreach方法和some方法
目录 一.foreach方法 1直接vs打开 2代码部分 二.some方法 1直接vs打开 2代码部分 3总结 在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说foreach和some的使用不多说把代码编辑器打开 一.foreach方法 1直接vs打开 2代码部分 var geyao = ['歌谣', '很帅', '很强'] geyao.forEach((currentValue, index, arr, thisValue) => { console.lo
-
javascript数组中的map方法和filter方法
目录 一.map方法 1编辑器 2代码部分 3运行结果 二.filter方法 1编辑器 2代码 3运行结果 一.map方法 1编辑器 编辑器搞出来 一起研究研究数组中的map方法: 2代码部分 var geyao=['歌谣',"很帅","很强"] geyao.map((currentValue,index,arr,thisValue)=>{ console.log(currentValue,"currentValue"
随机推荐
- iOS开发中UIDatePicker控件的使用方法简介
- php使用GD实现颜色渐变实例
- php上传图片存入数据库示例分享
- PHP 强制下载文件代码
- php获取数组元素中头一个数组元素值的实现方法
- 用批处理实现自动备份和清理mysql数据库的代码
- php自动识别文件编码并转换为UTF-8的方法
- 使用java web 在jsp文件及Class中连接MySQL和SQLsever 的驱动方法
- JavaScript中Object和Function的关系小结
- DropDownList绑定数据表实现两级联动示例
- VBS教程:属性-FileSystem 属性
- javascript中apply/call和bind的使用
- Nginx服务器搭建和基本配置详解
- C++求逆序对的方法
- Hibernate中使用HQLQuery查询全部数据和部分数据的方法实例
- Java语言实现非递归实现树的前中后序遍历总结
- MySQL分页Limit的优化过程实战
- python文本数据处理学习笔记详解
- java使用反射访问成员变量的值示例
- Golang中runtime的使用详解