首页 > 技术文章 > ES6之 字符串和正则表达式

miku561 2019-11-14 11:43 原文

字符串和正则表达式

ES6 为我们增添几个常用的字符串操作方法

  • includes() 方法。检测指定文本,匹配到结果返回true,否则为false。可以用来替换indexOf来判断字符串是否存在于另一个字符串中。

    • "abc".indexOf("a") > -1 => "abc".includes("a")

    • 当需要获取字段的索引值时,只能依靠indexOf(或lastIndexOf),匹配到的索引值为字符串第一个字符在 另一个字符串中的位置。"abcd".indexOf("bc") //1

  • startsWith() 方法。在字符串的开始部分是否是以指定文本,是则返回true,反之为false。

  • endsWith() 方法。在字符串的结尾部分是否是以指定文本,是则返回true,反之为false。

    • 上面两个方法均可接受两个参数。以startsWith为例。

    • "abc".startsWith('b', 1) // true

      • 第一个参数为匹配文本

      • 第二个参数设置检测的起始位置

      • endsWith中,第二个参数设置起始位置为 字符长度 - 参数值

  • repeat() 方法。接收一个number类型参数,表示改字符串的重复次数。

    • "ab".repeat(2) // abab

    • 若接收字符串可转为数字。则进行隐式转换。

    • 若接收字符串不可转为数字。则返回空。


新增3个字符编码的方法。

JavaScript的字符编码方式为 UTF-16 进行构建,即用 16个 0 / 1的组合表示一个字符。
  • 编码单元:这16个 0或1 的组合称为一个编码单元。

  • 基本多文种平面:编码单元的取值范围称为基本多文中平面。

    • 基本多文种平面 -> Basic Multilingual Plane. (以下简称:BMP)
对于超出BMP的字符,16位编码就无法表示了。为此UTF-16引入了代理对,用两个16位编码单元表示一个字符。
  • codePointAt() // 将字符转换为字符编码。

    • 对于BMP字符集中的字符,与charCodeAt()效果相同。

       "a".charCodeAt() // 97 
       "a".codePointAt() // 97
      
    • 对于非BMP字符集中的字符,会展示完整的字符编码。

      •  "

推荐阅读