请选择 进入手机版 | 继续访问电脑版
猿人社区
查看: 21|回复: 0

[干货] ES2018 ESScript2018新增

[复制链接]

88

主题

88

帖子

429

积分

管理员

Rank: 9Rank: 9Rank: 9

注册时间
2018-7-24
最后登录
2018-12-8
在线时间
68 小时
威望
18
金钱
293
贡献
12
发表于 2018-12-1 17:52:10 | 显示全部楼层 |阅读模式
命名捕获 ?<>
写正则的时候 在分组里面加入?<name> name就是组名
  1. let date="2018-12-1";
  2.     let dateArr=date.match(/(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{1})/);
  3.     /* year就是组名 ?<>声明要创建组名 */
  4.     console.log(dateArr.groups); //每个创建的组都放到了groups对象里面
  5.     console.log(dateArr.groups.year);
  6.     console.log(dateArr.groups.month);
  7.     console.log(dateArr.groups.day);
复制代码
控制台打印输出:{year: "2018", month: "12", day: "1"} 2018 12 1


反向引用 \k<>
\w<name>
  1. let date="haha-haha";
  2.     let dateArr=date.match(/(?<name>haha)-\k<name>/);
  3.     /* name就是组名 \k引用name这个组 就是 haha-haha */
  4.     console.log(dateArr.groups); //每个创建的组都放到了groups对象里面
复制代码


命名捕获 数字索引
\number
  1. let date="haha-haha-balala-balala";
  2.     let dateArr=date.match(/(?<name>haha)-\1-(?<name2>balala)-\2/);
  3.     /* name就是组名 \1引用name这个组 \2就是name2组 */
  4.     console.log(dateArr.groups); //每个创建的组都放到了groups对象里面
复制代码


dotAll 模式 s在正则里面 . 是匹配所有的字符串的,可是还是有匹配不到的,比如 \n换行之类的
现在只要加上 s 也就是dotAll模式就OK
不添加 s前
  1. let str="Hello\nworld";
  2.     let match=/^Hello.world$/;
  3.     let matchStr=match.test(str);
  4.     console.log(matchStr);
复制代码
控制台打印输出:false

添加 s 后
  1. let str="Hello\nworld";
  2.     let match=/^Hello.world$/s;
  3.     let matchStr=match.test(str);
  4.     console.log(matchStr);
复制代码
控制台打印输出:true


标签函数 fn``
使用函数的时候把括号 改成 ``  就是声明字符串模板的时候用的 符号 `````````
  1. function showMe(show){
  2.       console.log(show);
  3.     }
  4.     showMe`Hello. my name is tian`;
复制代码
输出的是数组

您需要登录后才可以回帖 登录 | 入住社区

本版积分规则

Archiver|手机版|小黑屋|Deaf community

GMT+8, 2018-12-12 19:36 , Processed in 0.063728 second(s), 18 queries .

Powered by Discuz! X3.4© 2001-2017 Comsenz Inc. Template design by Penday

快速回复 返回顶部 返回列表