首页 > 代码库 > 《ES6标准入门》29~48Page 字符串拓展 正则拓展

《ES6标准入门》29~48Page 字符串拓展 正则拓展

1.字符串的拓展

ES3允许使用类似\u0061这样的形式来表示字符,其中的数字是Unicode-8编码。

但如果超出\uffff的字符,必须使用双字节的形式表达,例如 \uD842\uDFB7。

在ES6中,可以用\u{20BB7}这种形式表示,其中数字是Unicode-16编码。

对于需要Unicode-16编码存储的字符,ES认为有2个字符。此时使用String.codePoinAt()方法,可以准确的识别字符串中的字符,如果需要遍历,则需要使用for...of循环。

与此相对,String.charAt方法则不能正确识别。

String.include()方法返回是否包含参数字符串,而startsWith()和endsWith()方法可以判断参数字符串是否处于源字符串的头尾部。

String.repeat()方法可以返回字符串n次。

ES6提供了模板字符串,并提供了String.raw()方法处理模板字符串。

const name = "Ann";
const age = 19;
console.log(`Im ${name},${age} years old!`);
//I‘m Ann,19 years old!

//raw()方法返回一个编译模板字符串后的,反斜线被转义的字符串。
let str = raw`Im ${name}\`;
console.log(str);
//I‘m Ann\\

2.正则表达式拓展

RegExp函数在ES6中可以接受正则表达式作为参数,返回一个参数本身。

String对象可以有match()、replace()、search()、split()方法可以接受正则表达式。

正则表达式匹配了字符串中的新Unicode表示法,并添加了y修饰符和对应的sticky属性表示是否设置了y修饰符,flags属性返回所有修饰符。

y修饰符从上次搜索的末尾开始。

 

《ES6标准入门》29~48Page 字符串拓展 正则拓展