jsWeb前端之路

字符串和正则表达式-《understanding ECMASci

2017-03-15  本文已影响23人  aliyu

ES6增加了对字符串和正则表达式更好的支持

更好的unicode支持

一些UTF-16编码的文字在ES5中出现一些问题

String.prototype.charPointAt()方法

charCodeAt()不同,该方法会在识别UTF-16编码的第一个字节会返回正确的结果。
but,第二个字节上与charCodeAt()结果并无不同。

String.prototype.formCodePoint()方法

会返回正确结果

String.prototype.normalize()方法

为了方便对不同编码的结果统一化,如æ与ae其实是等价的,但只有在normalize之后才会等价
1参,为"NFC"、"NFD"、"NFKC"、"NFKD"中一个,默认为'NFC';

正则表达式的u特符

字符串其他的变化

ES5里面只增加了一个trim()方法,ES6则增加了很多

String.prototype.includes()方法

2参,第二参可选
1参为搜索的字符串
2参为搜索的起始位置

如果找到,返回true,没有则返回false

String.prototype.startsWith()方法

2参,第二参可选
1参为匹配的字符串
2参为搜索的起始位置

如果字符串是以匹配的字符串开头的,则返回true,否则则返回false;

String.prototype.endsWith()方法

2参,第二参可选
1参为匹配的字符串
2参为搜索的起始位置

如果字符串是以匹配的字符串结束的,则返回true,否则则返回false;

String.prototype.repeat()方法

1参
1参字符串重复的次数
参数不能为负数,如果为小数是,使用其整数部分
返回重复n次(n为参数)的字符串

正则表达式的其他变化

y特符

相当于对每次匹配的字符都加个^
则可通过 /我是测试/y.sticky 返回true或false判断有没有.

兼容

以下代码在ES5报错,ES6中不会

var re = /ab/i,
  re2 = new RegExp(re,'g')

g会替换掉i

flags属性

var re = /ab/i;
re.flags //i

模板字符串

特性

上一篇 下一篇

猜你喜欢

热点阅读