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

本文介绍ES6中字符串与正则表达式的新增功能,包括使用Unicode-16编码简化特殊字符表示、引入String.codePointAt()方法准确识别字符、新增String.includes()等实用方法以及改进的正则表达式功能。

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(`I'm ${name},${age} years old!`);
//I'm Ann,19 years old!

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

2.正则表达式拓展

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

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

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

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

 

转载于:https://www.cnblogs.com/zainking/p/6804000.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值