js ES6 对字符的操作注意事项

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

1 function is32Bit(c) {
2   return c.codePointAt(0) > 0xFFFF;
3 }
4 
5 is32Bit("𠮷") // true
6 is32Bit("a") // false

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

normalize方法可以接受四个参数。

  • NFC,默认参数,表示“标准等价合成”(Normalization Form Canonical Composition),返回多个简单字符的合成字符。所谓“标准等价”指的是视觉和语义上的等价。
  • NFD,表示“标准等价分解”(Normalization Form Canonical Decomposition),即在标准等价的前提下,返回合成字符分解的多个简单字符。
  • NFKC,表示“兼容等价合成”(Normalization Form Compatibility Composition),返回合成字符。所谓“兼容等价”指的是语义上存在等价,但视觉上不等价,比如“囍”和“喜喜”。(这只是用来举例,normalize方法不能识别中文。)
  • NFKD,表示“兼容等价分解”(Normalization Form Compatibility Decomposition),即在兼容等价的前提下,返回合成字符分解的多个简单字符。
  •  1 '\u01D1'.normalize() === '\u004F\u030C'.normalize() 2 // true 

 1 '\u004F\u030C'.normalize('NFC').length // 1 2 '\u004F\u030C'.normalize('NFD').length // 2 

3.includes(),startsWith(),endsWith()

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

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

1 var s = 'Hello world!';
2 
3 s.startsWith('world', 6) // true
4 s.endsWith('Hello', 5) // true
5 s.includes('Hello', 6) // false

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

5.

posted @ 2016-03-08 17:49  马在路上  阅读(541)  评论(0编辑  收藏  举报