JS中的substr()和substring()函数有什么区别

JavaScript随机数生成方法演变:摒弃substr(),安全替代方案详解 随机数在JavaScript中的生成是一个关键的功能,然而,使用过时的 substr() 方法可能存在安全隐患。本文将探讨新的安全替代方案,以替代这一被弃用的方法,为您呈现更稳健、更清晰的JavaScript随机数生成方式。让我们深入了解,以确保代码的可靠性与性能。 阅读详情

在JavaScript中,substr() 和 substring() 都是用于从字符串中提取子字符串的函数,但它们在处理参数和某些边缘情况时有所不同。不过,值得注意的是,substr() 函数在ECMAScript 2015(ES6)中已被标记为废弃,并且在未来的版本中可能会被移除,所以建议尽可能使用 substring() 或 slice()。

以下是这两个函数的区别和示例:

substr()

substr(startIndex[, length])

* `startIndex`(必需):开始提取的索引位置(从0开始)。如果是负数,则表示从字符串的尾部开始算起的位置。例如,-1 指最后一个字符,-2 指倒数第二个字符,依此类推。

* `length`(可选):要提取的字符数。如果省略该参数或该参数大于字符串的剩余长度,则子字符串会一直提取到字符串的末尾。

 

示例:

javascript

let str = "Hello, World!";

console.log(str.substr(0, 5)); // 输出 "Hello"

console.log(str.substr(7)); // 输出 "World!"

console.log(str.substr(-1)); // 输出 "!"

 

substring()

substring(indexStart[, indexEnd])

* `indexStart`(必需):开始提取的索引位置(从0开始)。

* `indexEnd`(可选):停止提取的索引位置(但不包括该位置)。如果省略该参数或该参数大于字符串的长度,则子字符串会一直提取到字符串的末尾。如果任一参数小于0或为NaN,则会被当作0处理。如果 `indexEnd` 小于 `indexStart`,则两个参数的位置会互换。

 

示例:

javascript

let str = "Hello, World!";

console.log(str.substring(0, 5)); // 输出 "Hello"

console.log(str.substring(7)); // 输出 "World!"

console.log(str.substring(-1)); // 输出 "Hello, World!"(因为-1被当作0处理)

console.log(str.substring(7, 3)); // 输出 "Hel"(因为indexEnd小于indexStart,所以位置互换)

 

如你所见,这两个函数在处理负数索引和索引顺序上有显著的区别。由于 substr() 已被废弃,建议使用 substring() 或 slice() 来处理字符串的子串。slice() 的行为类似于 substring(),但支持负数索引。

 

AI Infra:从“算力饥渴”到“效能革命”的演进之路 本文探讨了AI基础设施从单纯追求算力到效能革命的演进历程。通过混合精度计算、梯度压缩和智能调度等技术,AI Infra实现了从硬件堆砌到系统优化的转变,显著提升训练效率和资源利用率。文章结合自动驾驶、电商等实战案例,揭示了效能提升带来的商业价值和技术突破。 阅读详情

相关推荐

JavaScript中substr和substring的区别及用法详解

需要注意的是,substr方法的第一个参数是起始索引,可以是正数或负数。而第二个参数是要提取的字符数,如果省略该参数,则提取从起始索引到字符串末尾的所有字符。与substr方法不同,substring方法的两个参数都必须是正数,并且起始索引必须小于结束索引。需要注意的是,虽然substring方法在参数为负数时会将其视为0,但它不支持使用负数的索引来从字符串末尾开始计算。在上面的示例中,我们从字符串的第7个字符开始提取到第12个字符(不包含第12个字符),结果为"World"。

laugh666的博客 297

JS中substr和substring

substr 和 substring都是JS 截取字符串函数。 substr 方法 返回一个从指定位置开始的指定长度的子字符串。 strvar.substr(start [, length ]) start:必选项。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。 length:可选项。在返回的子字符串中应包括的字符个数。 说明:当substr只有一个参数时,表示从字符串的第几位开始...

qq_36412715的博客 9414

让人迷惑的javascript中的substr()和substring()函数区别

让人迷惑的javascript中的substr()和substring()函数区别

代码青春 150

js中对字符串操作的方法substring(),substring(),slice()

相同点:都是对字符串进行截取,返回一个新的字符串,不会改变原字符串; 不同点: substring(start, stop) ; 返回下标start 到 stop -1 之间的字符串; substring参数说明 参数 说明 start 必需。一个非负的整数,规定要提取的子串的第一个字符在string中的位置。 stop 可选。一个非负的整数,比要提取的子串的最后一个字符在string中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。 ...

yinge0508的博客 4532

PCIE配置和地址空间

来源:https://www.jianshu.com/p/574e9a2cbc4e 每个PCIe设备,有这么一段空间,Host软件可以读取它获得该设备的一些信息,也可以通过它来配置该设备,这段空间就叫做PCIe的配置空间。不同于每个设备的其它空间,PCIe设备的配置空间是协议规定好的,哪个地方放什么内容,都是有定义的。PCI或者PCI-X时代就有配置空间的概念,那时的配置空间如下: 图6.1 整个配置空间就是一系列寄存器的集合,其中Type 0是Endpoint的配置,Type 1是Brid.

qq_28643619的博客 4059

【Python实战解析】从数据爬取到房价预测:一个完整的数据科学项目流程拆解

本文详细拆解了一个完整的Python数据科学项目流程,从爬取长沙二手房数据到房价预测模型构建。通过实战案例,介绍了数据爬取、清洗、可视化及模型优化的关键技巧,帮助开发者掌握Python在数据分析中的应用,提升程序开发能力。

weixin_30379531的博客 411

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

JS字符串截取函数slice(),substring(),substr()的区别 在JS中,slice()、substring()、substr()都有截取字符串的作用,那他们有哪些用法上的区别呢?如果你也有疑惑,这篇文章或许能够帮助到你。 一、substring() substring()方法返回一个索引和另一个索引之间的字符串,语法如下: str.substring...

EmotionComputer 1万+

麒麟V10系统下微信PC版安装全攻略:从源配置到一键安装(附常见问题解决)

本文详细介绍了在麒麟V10系统下安装和优化微信PC版的完整流程,包括系统环境准备、软件源配置、多途径安装方案以及性能优化技巧。特别针对国产操作系统用户,提供了从基础安装到高级配置的一站式解决方案,并附有常见问题排查方法,帮助用户快速实现微信PC版的高效运行。

weixin_30500105的博客 714

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

截取字符串 判断最后一位是否为 ' , ' 如果是则截取掉 不要 在js中字符截取函数有常用的三个slice()、substring()、substr()了,下面我来给大家介绍slice()、substring()、substr()函数在字符截取时的一些用法与区别吧。 取字符串的三个函数:slice(start,[end]),substring(...

diqinxiao3873的博客 152

RK3588上跑通Zipformer语音识别的3个坑与填坑实录(附完整编译命令)

本文详细记录了在RK3588开发板上部署Zipformer语音识别模型时遇到的三个典型问题及其解决方案,包括静态库版本冲突、编译脚本配置错误以及模型转换精度调优。文章提供了完整的编译命令和实战步骤,帮助开发者快速在边缘设备上实现高效的语音识别应用。

l6m7n8的博客 714

深入解析以太网接口中的BOB Smith电路设计

本文深入解析以太网接口中的BOB Smith电路设计,详细介绍了其在共模噪声抑制、浪涌防护和EMI优化中的关键作用。通过实际案例和设计要点,帮助工程师正确选择75Ω电阻和高压电容等元件,优化PCB布局,解决电压型与电流型PHY的设计差异,以及千兆与百兆以太网的特殊考量。

weixin_28339967的博客 684

js中字符串截取函数substring()、slice()、及substr()的使用及区别

js中字符串截取函数substring()、slice()、及substr()的使用及区别

weixin_44860226的博客 2420

基于禾赛32线雷达和Xsens MTi-G-710 组合导航模块,松灵Scout mini 底盘实现 Cartographer 3D 建图过程

地下车库 Cartongrapher 3D建图

yhy_yhy13053117的博客 3936

javaScript字符串截取函数substring()、substr()、slice()三者的区别

var str = "qwertyuiop"; 1、substring()方法:返回一个索引和另一个索引之间的字符串。 语法:str.substring(startIndex,endIndex); Notice:↓↓↓↓↓↓↓↓↓↓ substring() 提取字符串从 startIndex 开始到 endIndex,可以不包含 endIndex。 如果 startIn...

da000shuai的博客 462

向量数据库:PGVector

PGVector 是一个基于 PostgreSQL 的扩展插件,为用户提供了一套强大的向量存储和查询的功能

m0_37559973的博客 1万+

在 SAP BTP ABAP Environment 里把 ATC 跑成流水线:定时检查 + 告警邮件,一次打通

摘要 本文介绍了如何在SAP BTP ABAP环境中实现ATC检查的自动化流程。通过将ATC与质量体系结合,构建从检查到通知的完整闭环:使用Custom Code Analysis Project定义检查范围,通过Application Jobs实现定时调度,利用标准CDS View读取结果,最后开发通知作业发送告警邮件。文章重点阐述了云环境下不同于On-Premise的实现思路,包括Test Variant设计、作业编排模板应用等关键环节,并提供了可落地的代码示例。这种自动化方案能有效解决人工检查的滞后性

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 167

简述js字符串函数substr()和substring()的区别

  stringobject.substr(start,length)  截取对象“stringobject”,从第“start”个元素开始(从0开始数包括第“start”个),截取长度为“length”, stringobject.substring(start,stop)  截取对象“stringobject”,从第“start”个元素开始(从0开始数包括第“start”个),到第“sto...

新猿意码的博客 928

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

javascript中splice()、substring()、substr()三个函数的区别联系

其中slice()、substring()都接收2个参数,分别为在字符串的起始位置和终止位置,返回这2者之间的子字符串,不包括终止位置的那个字符。即接收2个参数,包前不包后。如果第二个参数不设置,则默认为字符串的长度,即从起始位置到结束位置。例如:var str = "abcd西汉姆efg南怀瑾";一、substring()与slice()函数的比较 //情景一:二个参...

weixin_33918357的博客 130

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

JS学习之字符串截取函数substr()与substring()的区别

比较简单,直接上代码 1 var testString="-1-2-3-4-5-6-7-"; 2 //从(第一个参数+1)的位置开始的长度为第二个参数的字符串 3 var result= testString.substr(2,4); 4 alert(result); //输出结果为:-2-3 ...

132

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

上一篇: 如何在JS中克隆对象
下一篇: JS事件委托模型和例子
codemami
博客等级 码龄3年 1369粉丝 137原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值