专栏首页coding个人笔记ES6之正则的扩展

ES6之正则的扩展

正则构造函数一般都是两个参数,ES6之前如果只有一个正则表达式的参数:

var reg = new RegExp(/a/g);

这时候是不允许再加一个参数:

var reg = new RegExp(/a/g, i);这是错误的,ES6是允许的,且第二个参数会覆盖之前的模式。

ES6把字符串使用正则的四个方法都变成调用正则对象RegExp上的方法,使用的时候是没什么区别,只是内部调用改变了,比如调用math方法是调用RegExp的prototype上面的方法。

新增了u修饰符,针对UTF-16的Unicode使用的。然后也增加了unicode的属性,表示是否是标志u。

新增了y修饰符,叫粘连sticky属性。也是全局匹配,解释说后一次匹配都从上一次匹配成功的下一个位置开始,增加了新的修饰符,相应的也增加了sticky属性。研究了一下,并没有理解,希望有人能指点一下。

我们可以用source获取正则的表达式,ES6新增了flags属性获取标志符igmuy等。

ES2018对正则新增了一些,这边就了解到ES6里面:

s修饰符,是2018引入的,为了解决行终止符\n\r等,同时还引入了dotAll属性返回布尔值。

ES2018还引入了后行断言,之前只支持先行断言和先行否断言。先行断言的意思是只有在某个之前的才匹配,先行否断言是只有不在某个之前才匹配。我觉得这个可以好好了解一下。

Unicode属性类,\p{...}和\P{...},允许匹配符合Unicode某种属性的所有字符。

具名匹配,采用圆括号提前的时候,每一组的含义不明确,ES2018引入了具名组匹配,便于阅读和引用:

无具名:/(\d{4})-(\d{2})-(\d{2})/

具名:/(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/

引用的时候跟json一样,顺序改变也不影响。

新增提案String.prototype.matchAll方法,一次性取出所有匹配,返回一个遍历器。

其实简单正则理解一下就够用了,至于扩展和一些几乎不用到的了解一下就够了,真的需要使用的时候再去研究。

(完)

本文分享自微信公众号 - coding个人笔记(gh_2ce38b49dae1),作者:wade

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-05-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux强大的awk(二)

    awk [ -F | -f | -v ] 'BEGIN{}//{commend1;commend2} END{}' file

    wade
  • ES6之module实现

    我们一般用script标签加载js,本来脚本是同步加载,用defer和async属性可以一步加载,两者的区别是,defer是渲染完执行,也就是DOM结构完全生成...

    wade
  • 简单了解JavaScript运算符与优先级

    之前分享了数据类型的转换和比较的时候的隐式转换,其实JavaScript还有非常多的运算符,常见的有算术、赋值、逗号、条件、比较等运算符或者是操作符,不常用的有...

    wade
  • Codeforces Round #527 (Div. 3) B. Teams Forming(水题)

    题目链接:http://codeforces.com/contest/1092/problem/B

    Ch_Zaqdt
  • 程序猿12个人艰不拆的真相

    十年生死两茫茫,写程序,到天亮。 千行代码,Bug 何处藏。 纵使上线又怎样,朝令改,夕断肠。 领导每天新想法,天天改,日日忙。 相顾无言,惟有泪千行。 每...

    Spark学习技巧
  • PHP vsprintf()函数格式化字符串操作原理解析

    与 sprintf() 不同,vsprintf() 中的参数位于数组中。数组元素将被插入到主字符串中的百分号(%)符号处。该函数是逐步执行的。在第一个 % 符号...

    砸漏
  • Javascript 获取div真实高度

    问天丶天问
  • LOJ#6282. 数列分块入门 6

    内存限制:256 MiB时间限制:500 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: hzwer 提交提交记录统计讨论测试数据 题目描述 给出...

    attack
  • Leetcode 59 Spiral Matrix II

    Given an integer n, generate a square matrix filled with elements from 1 to n2 ...

    triplebee
  • Markdown,你只需要掌握这几个

    http://www.cnblogs.com/crazyant007/p/4220066.html

    bear_fish

扫码关注云+社区

领取腾讯云代金券