slice(),substring()和substr()的异同
#同#
- 三个方法都是对字符串的截取操作,返回被操作的字符串,不会修改字符串本身;
- 都接受一或两个参数,第一个参数都为开始的位置;
- 只有一个参数且为正数的情况下返回的结果相同;
var str = "12345678";
console.log(str.slice(3)); // "45678"
console.log(str.substring(3)); // "45678"
console.log(str.substr(3)); // "45678"
复制代码
#异# ###1. 第二个参数含义不同### slice()
和substring()
第二个参数含义都为指定字符串最后一个字符后面的位置
, 而substr()
第二个参数含义为返回的字符数量
var str = "12345678";
console.log(str.slice(3,4)); // "4"
console.log(str.substring(3,4)); // "4"
console.log(str.substr(3,4)); // "4567"
复制代码
###2. 参数为负数###
slice()
会把负数与字符串长度相加
var str = "12345678";
console.log(str.slice(-3)); // 相当于 scice(5) => "678"
console.log(str.slice(-3,7)); // 相当于 scice(5,7) => "67"
console.log(str.slice(3,-3)); // 相当于 scice(3,5) => "45"
console.log(str.slice(-5,-3)); // 相当于 scice(3,5) => "45"
复制代码
substring()
会把负数转换为0
var str = "12345678";
console.log(str.substring(-3)); // 相当于 substring(0) => "12345678"
console.log(str.substring(-3,7)); // 相当于 substring(0,7) => "1234567"
console.log(str.substring(-5,-3)); // 相当于 substring(0,0) => ""
复制代码
substr()
第一个参数为负数会把负数与字符串长度相加
和slice()相同,第二个参数为负数返回空字符串
var str = "12345678";
console.log(str.substr(-3)); // 相当于 substr(5) => 678
console.log(str.substr(5,-3)); // 相当于 substr(5,0) => ""
复制代码
###3. 两个参数位置颠倒### 意思为将较大的数作为开始位置,而将较小的数作为结束位置, 这个不同点只在slice()
和substring()
才存在, substr()
只有一个参数表示位置,还有一个表示长度,所以不存在
这个问题
slice()
会返回空字符串
var str = "12345678";
console.log(str.slice(5,3)); // ""
console.log(str.slice(-3,3)); // 相当于 scice(5,3) => ""
console.log(str.slice(7,-3)); // 相当于 scice(7,5) => ""
复制代码
substring()
会调换
两个参数的位置
var str = "12345678";
console.log(str.substring(5,3)); // 相当于 substring(3,5) => "45"
console.log(str.substring(-3,3)); // 相当于 substring(0,3) => "123"
console.log(str.substring(7,-3)); // 相当于 substring(7,0) => substring(0,7) => "1234567"
复制代码
#总结# 来张表吧
本篇如能对您有所帮助,实在是感到荣幸。如有不合理之处也请大家多多指点。
转载于:https://juejin.im/post/5cbbd87be51d456e3b70189d
slice(),substring()和substr()的异同相关推荐
- 三种JS截取字符串方法 slice(),substring()和substr()
JS提供三个截取字符串的方法,分别是:slice(),substring()和substr(),它们都可以接受一个或两个参数: var stmp = "rcinn.cn"; 使用一 ...
- slice,substring,substr的区别
1.都为正整数//例子数据 var arr = [1,2,3,4,5,6,7], var str = "helloworld!"; //注意这里有个!号也算一位若有空格,空格也算一 ...
- 截取字符串slice(),substring() ,substr()。
在js中字符截取函数有常用的三个slice().substring().substr()了,下面我来给大家介绍slice().substring().substr()函数在字符截取时的一些用法与区别吧 ...
- substring、substr以及slice、splice用法和区别
关于substring() substring(start,stop)表示返回从start开始到stop处之间的新字符串,其长度为stop减 start. 特点: 包含start,但不包含stop 且 ...
- 【JS点滴】substring和substr以及slice和splice的用法和区别。
那么就由一道笔试题引入吧,已知有字符串a="get-element-by-id",写一个function将其转化成驼峰表示法"getElementById": ...
- js字符串截取函数的三种方式(slice()、substring()、substr())
在js中字符截取函数有常用的三个slice().substring().substr()了,下面我来给大家介绍slice().substring().substr()函数在字符截取时的一些用法与区别吧 ...
- html5 截取字符串,JS截取字符串之substring、substr和slice详解
本文详细的介绍了JavaScript中substring().substr()和slice()三个js字符串截取的方法,substring()方法用于提取字符串中介于两个指定下标之间的字符.subst ...
- 【JavaScript String对象方法】字符串片段提取:slice()、substring()、substr()
当参数相同时,返回结果是否相同 slice() substring() substr() 单正参 ✅ ✅ ✅ 单负参 ✅ ❌ (负参转换为 0,返回全字符串) ✅ 双正参 ✅ ✅ ❌ 双负参 ✅ nu ...
- nodejs 截断字符串_js字符串截取函数slice()、substring()、substr()
在js中字符截取函数有常用的三个slice().substring().substr()了,下面我来给大家介绍slice().substring().substr()函数在字符截取时的一些用法与区别吧 ...
最新文章
- JAVA中文字符串编码--GBK转UTF-8
- objective-c 编程总结(第六篇)运行时操作 - 方法交换
- 我常用的python函数(part1)--内置函数isinstance
- dev gridcontrol 根据数据获取索引_MySQL 索引分析除了 EXPLAIN 还有什么方法?
- 关于windows10 CMD 的一些操作
- SpringBoot2.0 基础案例(13):基于Cache注解模式,管理Redis缓存
- php安装扩展igbinary
- 卷积神经网络CNN算法原理
- 小米集团王嵋因错误表达致歉并请辞;亚马逊云服务出现中断,许多网站受到影响;deepin 深度系统更新发布|极客头条...
- SpringCloud的Ribbon自定义负载均衡算法
- Linux安装webmin
- Linux用户及用户组设置
- 分布式系统面试题:分布式事务解决方案?
- 怎么在Excel中生成Latex代码——excel2latex插件
- 《失业的程序员》(十二):潜意识的智商
- RSA2048 private key der格式结构
- 回溯法实现求解子集合和问题
- 设备接入ONENET(2)STM32 + ESP8266(MQTT协议)接入云 :使用 OneNET 官方麒麟座开发板例程
- 2023 OneTool多平台助手程序源码 开心版
- 计算机交互媒体应用范围,浅析交互媒体设计中的科技与艺术的关系