首页 > 其他 > 详细

Es6之字符串处理常用方法

时间:2020-03-05 00:44:14      阅读:70      评论:0      收藏:0      [点我收藏+]

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===\u004F\u030C //false
 
\u01D1.length // 1
\u004F\u030C.length // 

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

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

\u01D1.normalize() === \u004F\u030C.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"

 

Es6之字符串处理常用方法

原文:https://www.cnblogs.com/sexintercourse/p/12416961.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!