zoukankan      html  css  js  c++  java
  • Es6之字符串处理常用方法

    1.字符串的遍历器接口

    let text = String.fromCodePoint(0x20BB7);
     
    for (let i = 0; i < text.length; i++) {
      console.log(text[i]);
    }
    // " "
    // " "
     
    for (let i of text) {
      console.log(i);
    }
    // "?"

    上面代码中,字符串text只有一个字符,但是for循环会认为它包含两个字符(都不可打印),而for...of循环会正确识别出这一个字符。

    codePointAt方法是测试一个字符由两个字节还是由四个字节组成的最简单方法。

    function is32Bit(c) {
      return c.codePointAt(0) > 0xFFFF;
    }
     
    is32Bit("?") // true
    is32Bit("a") // false

    2.合成字符串比较法 normalize()

    'u01D1'==='u004Fu030C' //false
     
    'u01D1'.length // 1
    'u004Fu030C'.length // 

    上面代码表示,JavaScript 将合成字符视为两个字符,导致两种表示方法不相等。

    ES6 提供字符串实例的normalize()方法,用来将字符的不同表示方法统一为同样的形式,这称为 Unicode 正规化。

    'u01D1'.normalize() === 'u004Fu030C'.normalize()
    // true

    3.确定一个字符串是否包含在另一个字符串中

    let s = 'Hello world!';
     
    s.startsWith('Hello') // true
    s.endsWith('!') // true
    s.includes('o') // true

    这三个方法都支持第二个参数,表示开始搜索的位置。

    let s = 'Hello world!';
     
    s.startsWith('world', 6) // true
    s.endsWith('Hello', 5) // true
    s.includes('Hello', 6) // false

    上面代码表示,使用第二个参数n时,endsWith的行为与其他两个方法有所不同。它针对前n个字符,而其他两个方法针对从第n个位置直到字符串结束。

    4.重复字符串

    repeat方法返回一个新字符串,表示将原字符串重复n次。

    'x'.repeat(3) // "xxx"
    'hello'.repeat(2) // "hellohello"
    'na'.repeat(0) // ""

    5.补全字符串

    如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。 

    如果用来补全的字符串与原字符串,两者的长度之和超过了指定的最小长度,则会截去超出位数的补全字符串。

    'abc'.padStart(10, '0123456789')
    // '0123456abc'

     padStart的常见用途是为数值补全指定位数。下面代码生成 10 位的数值字符串。

    '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"
  • 相关阅读:
    关于集合中的实现细节
    数组与内存控制笔记
    python进阶------进程线程(五)
    python进阶------进程线程(四)
    python进阶------进程线程(三)
    python进阶-------进程线程(二)
    python进阶------进程线程(一)
    python进阶---Python中的socket编程
    Python基础---python中的异常处理
    Python进阶---面向对象第三弹(进阶篇)
  • 原文地址:https://www.cnblogs.com/sexintercourse/p/12416961.html
Copyright © 2011-2022 走看看