js 字符串的截取,主要有三个函数,一般使用三个函数:substr,substring,slice。

而这三个函数是不完全一样的,平时很难记住,在这里做下笔记,下次遇到的时候,直接从这里参考,调用合适的方法;

从参数方面考量:当有一个参数(正数)的时候,这三个函数基本上没有基本上没有什么区别

1. 有一个参数(正数):

  <script>
var str = "abcdefghijklmnopqrstuvwxyz";
var a = str.slice(2);
var b = str.substr(2);
var c = str.substring(2);
console.log("a的值为: " + a);
console.log("b的值为: " + b);
console.log("c的值为: " + c);
</script>

运行结果:

1.1 当有一个参数参数为负数时,slice() 会把 参数的值变为 : str.length + 参数 ;substr()会把参数的值变为:str.length + 参数 ;substring() 会把参数直接变为 :0

 <script>
var str = "abcdefghijklmnopqrstuvwxyz";
var a = str.slice(-5);
var b = str.substr(-5);
var c = str.substring(-5);
console.log("a的值为: " + a);
console.log("b的值为: " + b);
console.log("c的值为: " + c);
</script>

运行结果:

2.当有两个参数(都为正数)时,slice()的第一个参数为起始位置,第二个参数为结束位置(但是不包括结束位);substr()的第一个参数为起始位置,第二个参数为 要截取的字符串长度;substring()第一个参数为起始位置,第二个参数为结束位置(但是不包括结束位)

  <script>
var str = "abcdefghijklmnopqrstuvwxyz";
var a = str.slice(3, 10);
var b = str.substr(3, 10);
var c = str.substring(3, 10);
console.log("a的值为: " + a);
console.log("b的值为: " + b);
console.log("c的值为: " + c);
</script>

运行结果:

2.1 当有两个参数(第一个为负,第二个为正),slice() 会把第一个参数变为:str.length+参数;substr()会把第一个参数变为:str.length + 参数;substring()会把参数变为: 0

 <script>
var str = "abcdefghijklmnopqrstuvwxyz";
var a = str.slice(-3, 10);
var b = str.substr(-3, 10);
var c = str.substring(-3, 10);
console.log("a的值为: " + a);
console.log("b的值为: " + b);
console.log("c的值为: " + c);
</script>

运行结果:

解析如下:

2.2 当有两个参数(第一个为正,第二个为负),slice()会把第二个参数变为:str.length + 参数;substr()会把第二个参数变为:0 ;substring()会把第二个参数变为0,然后对比连个参数的大小,小的放前面

   <script>
var str = "abcdefghijklmnopqrstuvwxyz";
var a = str.slice(10, -3);
var b = str.substr(10, -3);
var c = str.substring(10, -3);
console.log("a的值为: " + a);
console.log("b的值为: " + b);
console.log("c的值为: " + c);
</script>

运行结果:

解析:

2.3 当有两个参数(第一个为负,第二个为负)。slice() 函数会把两个参数都变为:str.length + 参数 ;substr()函数会把第一个参数变为:str.length + 参数,把第二个参数变为:0;substring()函数会把两个参数都变为:0

 <script>
var str = "abcdefghijklmnopqrstuvwxyz";
var a = str.slice(-10, -3);
var b = str.substr(-10, -3);
var c = str.substring(-10, -3);
console.log("a的值为: " + a);
console.log("b的值为: " + b);
console.log("c的值为: " + c);
</script>

运行结果:

解析:

js 字符串截取函数substr,substring,slice之间的差异的更多相关文章

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

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

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

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

  3. 字符串截取函数substr()

    substr(参数1,参数2[,参数3]); 该系统函数返回被截后的子字符串,它接受2个必选参数,参数1为要截取的字符串,参数2为截取的开始位置,参数3可选,表示截取长度. 例子:substr(&qu ...

  4. 字符串截取函数substr和substring的不同及其相关说明

    1.substr 方法 功能:用于返回一个从指定位置开始的指定长度的子字符串,从“母字符串”的“指定位置”开始提取“指定长度”的“子字符串”. 语法:stringObject.substr(start ...

  5. substr,substring,slice 的区别

    javascript中的三个函数substr,substring,slice都可以用来提取字符串的某一部分(函数名称都是小写,不要写成subStr,subString又或者Substring,记住js ...

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

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

  7. Mysql字符串截取函数SUBSTRING的用法说明

    感觉上MySQL的字符串函数截取字符,比用程序截取(如PHP或JAVA)来得强大,所以在这里做一个记录,希望对大家有用. 函数: 1.从左开始截取字符串 left(str, length) 说明:le ...

  8. 字符串截取 及 substr 和 substring 的区别

    1..字符串截取 str.substr(0, 1) // 获取字符串第一个字符 str.substr(-1) // 获取字符串最后一个字符 str.charAt(str.length - 1) // ...

  9. js 字符串操作函数有哪些

    js 字符串操作函数有哪些 一.总结 一句话总结:js字符串函数都是字符串对象的方法,是通过调用字符串方法的方式调用,和java,php里面不一样. 1.字符串替换函数怎么用? 这里的正则表示是加双引 ...

随机推荐

  1. Ubuntu16.04 换阿里源

    国内阿里源速度比较快,北京联通下载极快.更新也比较稳定 1.备份 cp /etc/apt/source.list /etc/apt/source.list.bak 2.编辑source文件 sudo ...

  2. Windows文本文件上传至linux显示乱码解决方法

    iconv -f gbk -t UTF-8 显示异常文本名 -o 另存为文件名 iconv -f gbk -t UTF-8 rkgxdt_new.log -o new

  3. DataFrame对行列的基本操作实战

    1.pandas对行列的基本操作命令: import numpy as np import pandas as pd from pandas import Sereis, DataFrame ser ...

  4. 漫画赏析:Linux 内核到底长啥样(转)

    知乎链接:https://zhuanlan.zhihu.com/p/51679405 来自 http://TurnOff.us 的漫画 “InSide The Linux Kernel” 本文转载自: ...

  5. linux如何查看某个端口接收到的数据

    lsof -i:11883  可以获得 端口的连接信息 用这个可以按照端口查看详细的收发数据 sudo tcpdump -A -s 0 'tcp port 11883 and (((ip[2:2] - ...

  6. RN 使用第三方字体

    Android: 程序会尝试在 assets/fonts 目录下查找字体文件,如果没找到会使用默认的字体 所以将文件放到路径下才能生效! [project root]/android/app/src/ ...

  7. 虚拟机中的linux系统文件突然全部变成只读的问题

    当宿主系统和虚拟机的IO都比较繁忙时,虚拟机的IO请求得不到及时的响应.虚拟机Linux不知道自己运行在虚拟机里面,会认为是磁盘IO错误,为了保护磁盘数据会remount分区为只读. 这时候如果只是对 ...

  8. PHP安装Eclipse与使用

    PHP有非常多相当不错的开发工具,如Zend Studio.NetBeans.phpdesigner等,但对于习惯Java编程的程序员们来说,最经常使用的还要属Eclipse. 那么Eclipse能用 ...

  9. kong api可视化管理工具konga安装

    说明:官网推荐: kong-dashboard,但对比界面高端程度和友好度,更推荐konga.[一个坑]kong版本问题:我在安装时目前kong最新版本已经到1.0.0, 对于konga和kong-d ...

  10. Django字符串翻译

    文章出处:https://www.jb51.net/article/70077.htm Django模板使用两种模板标签,且语法格式与Python代码有些许不同. 为了使得模板访问到标签,需要将 {% ...