一、使用 slice() 截取

1,函数说明

slice() 方法可通过指定的开始和结束位置,提取字符串的某个部分,并以新的字符串返回被提取的部分。语法如下:
stringObject.slice(start, end)
参数说明:

  • start(必需):规定从何处开始选取。如果是负数,那么它规定从字符串尾部开始算起的位置。也就是说,-1 指最后一个字符,-2 指倒数第二个字符,以此类推。
  • end(可选):规定从何处结束选取,即结束处的字符下标。如果没有指定该参数,那么截取的字符串包含从 start 到结束的所有字符。如果这个参数是负数,那么它规定的是从数组尾部开始算起的字符。

2,使用样例

var str = "0123456789";
console.log("原始字符串:", str); console.log("从索引为3的字符起一直到结束:", str.slice(3)); //3456789
console.log("从倒数第3个字符起一直到结束:", str.slice(-3)); //789 console.log("从开始一直到索引为5的前一个字符:", str.slice(0,5)); //01234
console.log("从开始一直到倒数第3个字符的前一个字符:", str.slice(0,-3)); //0123456 console.log("从索引为3的字符起到索引为5的前一个字符:", str.slice(3,5)); //34
console.log("从索引为3的字符起到倒数第3个字符的前一个字符:", str.slice(3,-3)); //3456

二、使用 substring() 截取

1,函数说明

(1)substring 方法用于提取字符串中介于两个指定下标之间的字符。语法如下:
stringObject.substring(start, stop)
参数说明:

  • start(必需):一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。
  • stop(可选):一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。

返回值说明:
该方法返回一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度为 stop 减 start。

(2)注意事项:

  • 如果 start 与 end 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。
  • 如果 start 比 end 大,那么该方法在提取子串之前会先交换这两个参数。
  • 如果 start 或 end 为负数,那么它将被替换为 0。

2,使用样例

var str = "0123456789";
console.log("原始字符串:", str); console.log("从索引为3的字符起一直到结束:", str.substring(3)); //3456789
console.log("从索引为20的字符起一直到结束:", str.substring(20)); // console.log("从索引为3的字符起到索引为5的前一个字符结束:", str.substring(3,5)); //34
console.log("start比end大会自动交换,结果同上:", str.substring(5,3)); //34
console.log("从索引为3的字符起到索引为20的前一个字符结束:", str.substring(3,20)); //3456789

三、使用 substr() 截取

1,函数说明

substr 方法用于返回一个从指定位置开始的指定长度的子字符串。语法如下:
stringObject.substr(start, length)
start(必需):所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。
length(可选):在返回的子字符串中应包括的字符个数。

(2)注意事项:

  • 如果 length 为 0 或负数,将返回一个空字符串。
  • 如果没有指定 length,则子字符串将延续到 stringObject 的最后。
  • 如果 start 或 length 为负数,那么它将被替换为 0。

2,使用样例

var str = "0123456789";
console.log("原始字符串:", str); console.log("从索引为3的字符起一直到结束:", str.substr(3)); //3456789
console.log("从索引为20的字符起一直到结束:", str.substr(20)); // console.log("从索引为3的字符起截取长度为5的字符串:", str.substr(3,5)); //34567
console.log("从索引为3的字符起截取长度为20的字符串:", str.substr(3,20)); //3456789
 

附:其他一些常用的方法

下面这些函数可以辅助我们进行字符串的截取工作。
 

1,indexOf()

返回字符串中匹配子串的第一个字符的下标。
var str = "JavaScript";
var i1 = str.indexOf("a"); //1
var i2 = str.indexOf("S"); //4
var i3 = str.indexOf("Script"); //4
var i4 = str.indexOf("k"); //-1 console.log("原始字符串:", str);
console.log("a的索引:", i1);
console.log("S的索引:",i2);
console.log("Script的索引:",i3);
console.log("k的索引:",i4);
 
 

2,lastIndexOf()

该方法返回从右向左出现某个字符或字符串的首个字符索引值(与 indexOf 相反)

var str = "JavaScript";
var i1 = str.lastIndexOf("a"); //3
var i2 = str.lastIndexOf("S"); //4
var i3 = str.lastIndexOf("Script"); //4
var i4 = str.lastIndexOf("k"); //-1
 

转载自原文链接:http://www.hangge.com/blog/cache/detail_1887.html

JS-字符串截取方法slice、substring、substr的区别的更多相关文章

  1. JS字符串截取函数slice(),substring(),substr()的区别

    在JS中,slice().substring().substr()都有截取字符串的作用,那他们有哪些用法上的区别呢?如果你也有疑惑,这篇文章或许能够帮助到你. 一.substring() substr ...

  2. 字符串截取函数slice, substring, substr

    在日常项目需求中,常常会遇到需要截取字符串操作的工作,而ECMAScript为我们提供了原生的截取字符串的函数,而且提供了三个:slice, substring, substr.我们怎么判断在什么时候 ...

  3. js字符串截取函数slice()、substring()、substr()

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

  4. 字符串的方法slice、substr、substring对比

    三个方法的参数1都代表子串开始位置,参数2在slice和substring中表示结束位置,而在substr中代表的则是子串长度: 对于负数态度,当出现在参数1的位置时,slice和substr从末尾开 ...

  5. slice,substring,substr的区别

    1.都为正整数//例子数据 var arr = [1,2,3,4,5,6,7], var str = "helloworld!"; //注意这里有个!号也算一位若有空格,空格也算一 ...

  6. 字符串截取slice() substring() substr()的区别?

    获取子字符串 slice()        substr()    substring() 不会修改字符串本身,他们只是返回一个基本类型的字符串值 var str='abcdefghijklmn'; ...

  7. JS字符串处理方法

    1.字符方法charAt()和charCodeAt();这两个方法都接收一个参数例:<script>var stringValue = "hello world"; s ...

  8. js 字符串截取 substring() 方法、 substr() 方法、slice() 方法、split() 、join();

    三种 js 截取字符串的方法: substring() 方法: substr() 方法: slice() 方法: 1.:substring() 方法:string.substring(from, to ...

  9. 【iOS】Swift字符串截取方法的改进

    字符串截取方法是字符串处理中经常使用的基本方法.熟悉iOS的朋友都知道在基础类的NSString中有substringToIndex:,substringFromIndex:以及substringWi ...

  10. 浅谈 js 字符串 trim 方法之正则篇

    原文:浅谈 js 字符串 trim 方法之正则篇 关于 trim 其实没啥好说的,无非就是去除首位空格,对于现代浏览器来说只是简单的正则 /^\s+|\s+$/ 就可以搞定了.而且支持中文空格   等 ...

随机推荐

  1. 《.Net 最佳实践》 - 学习笔记

    <.Net 最佳实践> ========== ========== ==========[作者] (美) Stephen Ritchie[译者] (中) 黄灯桥 黄浩宇 李永[出版] 机械 ...

  2. 集合框架关于<list接口><map接口>的运用

    集合: 集合就是一个容器,他可以存储对象,我们说集合就是一个可变的数组 集合框架特点 1.list和set集合同时实现了collection接口 2.set集合存储唯一,无序的对象. 3.list 存 ...

  3. CentOS 7上的系统管理之:Systemd和systemctl

    参考资料: Chapter 10. Managing Services with systemd Red Hat Enterprise Linux 7 | Red Hat Customer Porta ...

  4. GitHub 设置和取消代理,加速 git clone

    git 设置代理: git config --global git 取消代理: git config --global --unset http.proxy 针对 github.com 设置代理: g ...

  5. DiskCatalogMaker for Mac常见问题解答

    DiskCatalogMaker for Mac是Mac上简单实用的磁盘管理工具,可以帮助您对多张光盘使用批量扫描模式, 生成缩略图图像选项,更加清晰,并请将其快速编目引擎与其他编目人员比较,在本篇文 ...

  6. Sqoop 抽数报错: java.io.FileNotFoundException: File does not exist

    Sqoop 抽数报错: java.io.FileNotFoundException: File does not exist 一.错误详情 2019-10-17 20:04:49,080 INFO [ ...

  7. IT兄弟连 HTML5教程 CSS3属性特效 圆角

    传统的圆角生成方案,必须使用多张图片作为背景图案.CSS3的出现,使得我们再也不必浪费时间去制作这些图片了,只需要border-radius属性,支持浏览器IE 9.Opera 10.5.Safari ...

  8. 从零开始手写 dubbo rpc 框架

    rpc rpc 是基于 netty 实现的 java rpc 框架,类似于 dubbo. 主要用于个人学习,由渐入深,理解 rpc 的底层实现原理. 前言 工作至今,接触 rpc 框架已经有很长时间. ...

  9. Redis 常用知识

    Redis 介绍 Redis 一个开源的使用ANSI C语言编写.遵守BSD协议,内存中的数据结构存储系统,它可以用作Key-Value数据库.缓存和消息中间件,并提供多种语API. 支持多种数据结构 ...

  10. JavaWeb入门——在Linux环境下安装Tomcat服务器

    JavaWeb入门——在Linux环境下安装Tomcat服务器 摘要:本文主要学习了如何在Linux环境下安装Tomcat服务器. 准备工作 检查Java环境变量 检查系统是否配置了Java的环境变量 ...