首页 > 其他分享 >一次性搞懂JS字符串截取方法substring()、slice()以及substr()的用法和区别

一次性搞懂JS字符串截取方法substring()、slice()以及substr()的用法和区别

时间:2023-09-22 11:23:01浏览次数:45  
标签:slice 截取 负数 substring 参数 字符串 搞懂 JS

substring()和slice()都接受两个参数,“start”和“end”。

“start”表示截取的开始位置,“end”表示结束的位置(不包括该位置的字符,也就是前要后不要)。

如果不传参数,则返回字符串本身的一个副本。

 

如果只传一个参数,则从该位置开始,截取到字符串的末尾。

 

如果传递两个参数,则遵循前要后不要原则。

 

如果第二个参数大于等于字符串长度,则和不传第二个参数效果是一样的。

 

二者的不同点在于对负数的处理。

substring()不支持负数参数。如果传递负数作为参数,该方法会将其作为0处理。如果只传递一个负数,则返回字符串的副本,如果传递两个负数,则返回空字符串。

 

slice()方法传入的负数表示从字符串末尾开始计算位置。注意:-1表示字符串的最后一个字符,-2表示倒数第二个字符,以此类推。

 另外一个方法,substr()也接受两个参数。“start”和“length”。

“start”表示截取的起始位置,可以为正数,也可以是负数。如果是正数,表示从字符串的开头开始计算,负数则从末尾计算。最后一位是-1,以此类推。

“length”表示截取的字符数量。不传则是截取到字符串的末尾。

 以上。

 

标签:slice,截取,负数,substring,参数,字符串,搞懂,JS
From: https://www.cnblogs.com/junlinglife/p/17721881.html

相关文章

  • 已解决tensorflow.python.framework.errors_impl.InvalidArgumentError: slice index
    已解决tensorflow.python.framework.errors_impl.InvalidArgumentError:sliceindex1ofdimension0outofbounds.文章目录报错问题解决方法声明报错问题之前在工作中遇到过这个坑,记录一下问题以及解决方法,不一定针对所有情况都能用,但是可以供大家参考。问题描述如下:tensor......
  • 循环 JSONArray
    当需要遍历一个JSONArray时,可以使用Java中的循环结构来实现。以下是一个示例代码,演示如何使用Java循环遍历一个JSONArray: javaimportorg.json.JSONArray;importorg.json.JSONObject;publicclassJSONArrayExample{publicstaticvoidmain(String[]args){......
  • js 中 " + " 的使用
    //加法计算consta1=2+2//4letm1=5,m2='5'letn1=11,n2='11'letk1=70,k2='70'm1++//6(等价于m1=m1+1)m1++//6n1+=1//12(等价于n1=n1+1)n2+=1......
  • js jquery input radio点击事件
     HTML:<inputtype="radio"name="myname"value="1"/>1<inputtype="radio"name="myname"value="2"/>2 jquery代码: //点击事件change$('input[type=radio][name=myname]').ch......
  • EL表达式和JSTL标签库
    什么是EL表达式以及他的作用EL表达式和jsp表达式脚本输出对比a.jsp<%--CreatedbyIntelliJIDEA.User:SWTDate:2023/9/14Time:22:59TochangethistemplateuseFile|Settings|FileTemplates.--%><%@pagecontentType="text/html;charset=UTF-8......
  • JS实现任务队列
    引言假设有这么一个场景:前端订阅后台数据的变化,如果发生变化,则触发订阅回调;回调函数中,会执行一些耗时操作,如:请求接口,发送短信,存历史数据等;要求以上所有的操作都必须按照订阅触发的顺序执行;我们都知道,回调本身就是一种异步操作,我们仅仅依靠订阅回调无法保证回调中任务执行顺......
  • js加密双重保障之sm2国密
    前言 最近看到一些项目里边有用到sm2/3/4国密加密算法,这里给大家简单介绍一下。知识科普SM2(国密算法)是一种非对称加密算法,由中国国家密码管理局(NCC)制定,并被广泛应用于中国的信息安全领域。它基于椭圆曲线密码学,主要用于数字签名和数据加密。以下是SM2国密算法的一些关键特点:安全性:S......
  • JS逆向
    场景:登录时账号或密码被加密而无法爆破或Fuzz的情况,如果是前端加密可以尝试js逆向,搭配phantomjs(JavaScriptAPI)和bp插件JSEncryptr进行爆破一、https://my.sto.cn/1.点击登录,可见发送了一个数据包LoginResult,地址是/Vip/LoginResult2.ctrl+shift+f全局查找/Vip/LoginRe......
  • 一些H5对接微信JSSDK的问题记录
    这里给大家分享我在实际生活中总结出来的一些知识,希望对大家有所帮助一.SDK引入这里提供两套引入流程,一套是vue2.0及其他h5项目,一套是vue3.0的引入流程不懂的也可以看我之前的一篇详细流程记录--微信调用jssdk全流程详解1.js引入直接在你的页面里引入js文件就行<scriptsr......
  • Swagger生产nodejs后台代码(nestia框架)
    Swagger文档生产nestia框架代码#SETUPGLOBALLYnpminstall-g@nestia/migrate#DOMIGRATEnpx@nestia/migrateswagger.jsonoutput_directoryNPM是一个Node包管理器,NPX是一个Node包执行器。npm查看全局安装的包npmls-g......