资讯专栏INFORMATION COLUMN

js substr,slice,substring 的用法与区别

Lin_YT / 1319人阅读

摘要:交换参数位置,小的在前。的如果为负数,同样从尾部算起,如果其绝对值超过原字符串长度或者为,返回空字符串。会取和中较小的值为二者相等返回空字符串,任何一个参数为负数被替换为即该值会成为参数。第二个为负值是始终返回控制符串。

slice,substring,substr三个函数都是截取字符串。

先看方法的签名

slice(start, end); // 参数可为负数。第二个参数是指定结束位置。
substring(start, end); // 参数为负数被替换成0。交换参数位置,小的在前。第二个参数是指定结束位置。
substr(start, length); // 参数可为负数。第二个参数是指定截取长度。

从签名可以看出 substr 和其他两个的差别,substr第二个参数指定截取的长度,slice和substirng第二个参数指定截取的结束位置, 例:

var s = "helloworld";
a.substr(2, 5); // "llowo"
a.slice(2, 5); // "llo"
a.substring(2, 5) // "llo"

slice和substring的差别在于slice的参数可以是负数,而substring不行。

slice中的start如果为负数,会从尾部算起,-1表示倒数第一个,-2表示倒数第2个,此时end必须为负数,并且是大于start的负数,否则返回空字符串。slice的end如果为负数,同样从尾部算起,如果其绝对值超过原字符串长度或者为0,返回空字符串。

substring会取start和end中较小的值为start,二者相等返回空字符串,任何一个参数为负数被替换为0(即该值会成为start参数)。

// substring会取start和end中较小的值为start
s.substring(3, 2); // "l"
s.substring(2, 3); // "l"

// 二者相等返回空字符串
s.substring(3,3); // ""

// 任何一个参数为负数被替换为0, 相当于 s.substring(0, 2);
s.substring(-1, 2); // "he"
// 相当于 s.substring(0, 0);
s.substring(-1, -2); // "" 

substr的参也可以为负数,当第一个参数为负数时,会从尾部算起,-1表示倒数第一个,-2表示倒数第2个...。第二个为负值是始终返回控制符串。

s.substr(-2, 1); // "l"
s.substr(-2, 0); // ""
s.substr(-2, -1); // ""

// 第一个参数为负数时,绝对值大于字符串长度时替换为0
s.substr(-10, 2); // "he"

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/96353.html

相关文章

  • js和es6中字符串方法总结

    摘要:截取字符串用法用数学表达式表达区间的话就是截取和上面结果一样会自动进行掉换,但是和必须要都为正数。 1.substring(start,end) -> 截取字符串 用法: 1.substring(start,end) -> 用数学表达式表达区间的话就是截取[start,end);2.substring(start,end),end > start -> 和上面结果一样,会自动进行掉换...

    godruoyi 评论0 收藏0
  • js基础 数组字符串

    摘要:最近在梳理的基础,首先从数组和字符串开始。如果超出有效范围与字符串长度减一的索引值返回空字符串返回对象内第一次出现子字符串位置。将字符串以参数分割为数组方法返回一个字符串,该字符串中的字母被转换成小写。 最近在梳理js的基础,首先从数组和字符串开始。 string 常用方法: 1.substring(start开始位置的索引,end结束位置索引) 截取的位置不包含结束位置的字符,只写一...

    liaosilzu2007 评论0 收藏0
  • js中截取字符串三个方法 substring()、substr()、slice()

    摘要:方法用于提取字符串中介于两个指定下标之间的字符。一个非负的整数,规定要提取的子串的第一个字符在中的位置。子串中的字符数。控制台方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。 查看原文可以有更好的排版效果哦 js中有三个截取字符的方法,分别是substring()、substr()、slice(),平时我们可能都用到过,但总是会对这些方法有点混淆,特别是substring(...

    elva 评论0 收藏0
  • 浅谈JS字符串三个方法

    摘要:该方法会改变调用该方法的对象有返回值如的方法,会改变一个数组本身的顺序,并且返回一个按要求排列的数组像的方法是不会改变原对象的方法是否是静态的例如的方法都是静态方法最后一点纯属个人恶趣味,我会把一些明显不符合要求的值传入,看看是否出现异常。 正文 每次遇到某个类型陌生的方法的时候,我通常会思考这样几个问题: 该方法需要的传入参数: 不需要传参数的:诸如Array的pop方法; 有...

    smartlion 评论0 收藏0
  • JavaScript 字符串实用常操纪要

    摘要:另外如果为负数,则表示从字符串尾部开始算起。将要搜寻的子字符串。从当前字符串的哪个索引位置开始搜寻子字符串默认为。否则则会返回一个数组,数组中存放所有符合要求的子字符串,并且没有和属性。 原文链接 JavaScript 字符串用于存储和处理文本。因此在编写 JS 代码之时她总如影随形,在你处理用户的输入数据的时候,在读取或设置 DOM 对象的属性时,在操作 Cookie 时,在转换各种...

    Harpsichord1207 评论0 收藏0

发表评论

0条评论

Lin_YT

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<