字符串方法整理

字符串方法

  • 字符串切割
    • slice
      • strObj.slice(start[,end])
      • 参数为负,将它作为length+end处理,此处length为字符串的长度。 
      • str.slice(-2)可以取字符串后两位
    • substring
      • strObj.substring(start[,end])
      •  substring方法使用start和end两者中的较小值作为子字符串的起始点
      • 如果start或end为NaN或者为负数,那么将其替换为0。 
      • 两个参数不确定是起始位置还是结束位置时使用
    • substr
      • strObj.substr(start[,length])
      • 如果start为负,将它作为length+start处理,此处length为字符串的长度。
      • 返回一个从指定位置开始的指定长度的子字符串。 
      • str.substr(-2)可以取字符串后两位
  • 字符串分割(字符串转数组)
    • split
      • strObj.split([separator[,limit]]) 
      • separator字符串或 正则表达式 对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽略该选项,返回包含整个字符串的单一元素数组。 
      • limit该值用来限制返回数组中的元素个数。
      • var str = "AA BB CC DD EE FF";
      • alert(str.split(" ",3));
      • 结果:
      • AA,BB,CC
  • 子串识别 注意:如果向 startsWith() 、 endsWith() 或 includes() 方法传入了正则表达式而不是字符串,会抛出错误。而对于indexOf()和lastIndexOf()这两个方法,它们会将正则表达式转换为字符串并搜索它若需要找到它们在字符串中的确切位置,则需要使用 indexOf() 和 lastIndexOf() 。
    • includes (es6)
      • 该方法在给定文本存在于字符串中的任意位置时会返回 true ,否则返回false。
      • 接受两个参数:需要搜索的文本,以及可选的搜索起始位置索引
    • startsWith (es6)
      • 该方法在给定文本出现在字符串起始处时返回 true ,否则返回 false
      • 接受两个参数:需要搜索的文本,以及可选的搜索起始位置索引
    • endsWith (es6)
      • 该方法在给定文本出现在字符串结尾处时返回 true ,否则返回 false 
      • 接受两个参数:需要搜索的文本,以及可选的搜索起始位置索引
    • indexOf
      • strObj.indexOf(substr[,startIndex]) 
      • 返回String对象内第一次出现子字符串位置。没有找到子字符串,则返回-1。 
      • var str = "ABCDECDFG";
      • str.indexOf("CD",1); // 由1位置从左向右查找 12,23...
      • 结果:2
    • lastIndexOf
      • strObj.lastIndexOf(substr[,startindex]) 
      • 返回String对象中字符串最后出现的位置。没有找到子字符串,则返回-1。 
      • var str = "ABCDECDFG";
      • str.lastIndexOf("CD",7); // 由7位置从右向左查找 67, 56...
      • 结果:5
    • search
      • 参数为字符串或者正则表达式
      • 返回匹配的第一个字符串的位置(就算是带g全局标志也是返回匹配的第一个字符串的位置)
  • 字符串重复
    • repeat(es6)
      • 接受一个参数作为字符串的重复次数,返回一个将初始字符串重复指定次数的新字符串
      • 参数如果是小数,会被取整(向下取整,等同floor) console.log('na'.repeat(2.9)); // "nana"
      • 如果repeat的参数是负数或者Infinity,会报错 //Uncaught RangeError: Invalid count value console.log('na'.repeat(Infinity)); //Uncaught RangeError: Invalid count value console.log('na'.repeat(-1));
      • 如果参数是0到-1之间的小数,则等同于0,这是因为会先进行取整运算。0到-1之间的小数,取整以后等于-0,repeat视同为0 console.log('na'.repeat(-0.9)); // ""
      • 参数NaN等同于0 console.log('na'.repeat(NaN)); // ""
      • 如果repeat的参数是字符串,则会先转换成数字 console.log('na'.repeat('na')); // "" console.log('na'.repeat('3')); // "nanana"
      • 应用:缩进级别
  • 字符串补全
    • padStart(es8)和padEnd(es8)
      • 接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串 'x'.padStart(5, 'ab') // 'ababx' 'x'.padStart(4, 'ab') // 'abax' ​ 'x'.padEnd(5, 'ab') // 'xabab' 'x'.padEnd(4, 'ab') // 'xaba'
      • 如果省略第二个参数,默认使用空格补全长度 'x'.padStart(4) // ' x' 'x'.padEnd(4) // 'x '
      • 如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串 'xxx'.padStart(2, 'ab') // 'xxx' 'xxx'.padEnd(2, 'ab') // 'xxx'
      • 如果用来补全的字符串与原字符串,两者的长度之和超过了指定的最小长度,则会截去超出位数的补全字符串 'abc'.padStart(10, '0123456789')// '0123456abc'
      • 应用
        • 补全指定位数 '1'.padStart(10, '0') // "0000000001" '12'.padStart(10, '0') // "0000000012" '123456'.padStart(10, '0') // "0000123456"
        • 提示字符串格式 '12'.padStart(10, 'YYYY-MM-DD') // "YYYY-MM-12" '09-12'.padStart(10, 'YYYY-MM-DD') // "YYYY-09-12"

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • react-native 集成极光推送jpush-react-native时的小问题

    mcq
  • 转:2016年崛起的js项目

    mcq
  • function前加运算符实现立即执行函数

    mcq
  • 字符串相关知识集锦

    常用函数 1.数据库安全方面 addslashes — 使用反斜线引用字符串,返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符...

    苦咖啡
  • 快速学习ES6新特性-l字符串扩展

    cwl_java
  • 再啰嗦最后一次,Java字符串是不可变的

    关于不可变对象,还有这样一个小故事。Java 之父詹姆斯高司令曾在一次采访中被问及这样一个问题:“高司令,应该什么时候使用不可变对象啊?”你猜高司令怎么回答?

    用户1564362
  • 再啰嗦最后一次,Java字符串是不可变

    最近,又有好几个小伙伴问我这个问题:“二哥,为什么 Java 的 String 要设计成不可变的啊?”说实话,这也是一道非常经典的面试题,面试官超喜欢问。我之前...

    沉默王二
  • js-字符串方法

    chartAt()以单字符字符串的形式返回给定位置的那个字符。而charCodeAt()返回的是字符编码。

    eadela
  • C语言中定义字符串的几种方式

      由于字符串本质上其实就是以'\0作为'结尾的特殊字符数组,所以定义字符串时,必须保证字符串存储的最后一个元素为'\0'。

    诸葛青云
  • Python学习笔记:Python字符串操作

    find方法从左至右搜索字符串,返回指定子字符串第一次出现的索引值。注意,索引值从0开始。其语法为:

    fanjy

扫码关注云+社区

领取腾讯云代金券