ES6中 字符串的方法

String.raw()

ES6 还为原生的 String 对象,提供了一个raw()方法。该方法返回一个斜杠都被转义(即斜杠前面再加一个斜杠)的字符串,往往用于模板字符串的处理方法。

String.raw`Hi\n${2+3}!`
// 实际返回 "Hi\\n5!",显示的是转义后的结果 "Hi\n5!"

String.raw`Hi\u000A!`;
// 实际返回 "Hi\\u000A!",显示的是转义后的结果 "Hi\u000A!"
String.raw`Hi\\n`
// 返回 "Hi\\\\n"

String.raw`Hi\\n` === "Hi\\\\n" // true

实例方法:codePointAt()

JavaScript 内部,字符以 UTF-16 的格式储存,每个字符固定为2个字节。对于那些需要4个字节储存的字符(Unicode 码点大于0xFFFF的字符),JavaScript 会认为它们是两个字符。

var s = "𠮷";

s.length // 2
s.charAt(0) // ''
s.charAt(1) // ''
s.charCodeAt(0) // 55362
s.charCodeAt(1) // 57271

实例方法:includes(), startsWith(), endsWith()

传统上,JavaScript 只有indexOf方法,可以用来确定一个字符串是否包含在另一个字符串中。ES6 又提供了三种新方法。

  • includes():返回布尔值,表示是否找到了参数字符串。
  • startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
  • endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。
    let s = 'Hello world!';
   
   s.startsWith('Hello') // true
   s.endsWith('!') // true
   s.includes('o') // true

实例方法:padStart(),padEnd()

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

'x'.padStart(5, 'ab') // 'ababx'
'x'.padStart(4, 'ab') // 'abax'

'x'.padEnd(5, 'ab') // 'xabab'
'x'.padEnd(4, 'ab') // 'xaba'

实例方法:trimStart(),trimEnd()

ES2019 对字符串实例新增了trimStart()和trimEnd()这两个方法。它们的行为与trim()一致,trimStart()消除字符串头部的空格,trimEnd()消除尾部的空格。它们返回的都是新字符串,不会修改原始字符串。

const s = '  abc  ';

s.trim() // "abc"
s.trimStart() // "abc  "
s.trimEnd() // "  abc"

实例方法:replaceAll()

历史上,字符串的实例方法replace()只能替换第一个匹配。

'aabbcc'.replace('b', '_')
// 'aa_bcc'
  • 如果要替换所有的匹配,不得不使用正则表达式的g修饰符。

‘aabbcc’.replace(/b/g, ‘_’) // ‘aa__cc’

正则表达式毕竟不是那么方便和直观,ES2021 引入了replaceAll()方法,可以一次性替换所有匹配

'aabbcc'.replaceAll('b', '_')
// 'aa__cc'

如果searchValue是一个不带有g修饰符的正则表达式,replaceAll()会报错。这一点跟replace()不同。

// 不报错
'aabbcc'.replace(/b/, '_')

// 报错
'aabbcc'.replaceAll(/b/, '_')
  • replaceAll()的第二个参数replacement是一个字符串,表示替换的文本,其中可以使用一些特殊字符串
  • $&:匹配的字符串。
  • $` :匹配结果前面的文本。
  • $':匹配结果后面的文本。
  • $n:匹配成功的第n组内容,n是从1开始的自然数。这个参数生效的前提是,第一个参数必须是正则表达式。
  • $ :指代美元符号 :指代美元符号 :指代美元符号

实例方法:at()

  • at()方法接受一个整数作为参数,返回参数指定位置的字符,支持负索引(即倒数的位置)。
const str = 'hello';
str.at(1) // "e"
str.at(-1) // "o"

相关推荐

  1. ES6 字符串方法

    2024-03-13 14:52:03       20 阅读
  2. ES6字符串新增方法

    2024-03-13 14:52:03       16 阅读
  3. #Js篇:字符串使用方法es5和es6

    2024-03-13 14:52:03       33 阅读
  4. es6一些方法

    2024-03-13 14:52:03       14 阅读
  5. ES6模板字符串基本使用

    2024-03-13 14:52:03       38 阅读
  6. ES6字符串变化

    2024-03-13 14:52:03       40 阅读
  7. ES6Promise

    2024-03-13 14:52:03       43 阅读
  8. ES6Set

    2024-03-13 14:52:03       37 阅读
  9. ES6Proxy

    2024-03-13 14:52:03       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-13 14:52:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-13 14:52:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-13 14:52:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-13 14:52:03       20 阅读

热门阅读

  1. 探索未来科技:量子计算的前沿与挑战

    2024-03-13 14:52:03       20 阅读
  2. 如何实现用django读写elasticsearch

    2024-03-13 14:52:03       21 阅读
  3. YOLO-World:实时开放词汇目标检测

    2024-03-13 14:52:03       22 阅读
  4. udp通信程序(桥接模式)

    2024-03-13 14:52:03       19 阅读
  5. 在 Android 上部署预训练模型

    2024-03-13 14:52:03       20 阅读
  6. Redis 中 redis-benchmark 详解及参数介绍

    2024-03-13 14:52:03       21 阅读
  7. 前端面试-浏览器相关

    2024-03-13 14:52:03       17 阅读
  8. 2.MySQL中的数据类型

    2024-03-13 14:52:03       17 阅读