zoukankan      html  css  js  c++  java
  • 字符串方法整理

    字符串方法
    • 字符串切割
      • 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"

  • 相关阅读:
    light oj 1105 规律
    light oj 1071 dp(吃金币升级版)
    light oj 1084 线性dp
    light oj 1079 01背包
    light oj 1068 数位dp
    light oj 1219 树上贪心
    light oj 1057 状压dp TSP
    light oj 1037 状压dp
    矩阵快速幂3 k*n铺方格
    矩阵快速幂2 3*n铺方格
  • 原文地址:https://www.cnblogs.com/macq/p/8308386.html
Copyright © 2011-2022 走看看