RegExpRegExp在ES9中添加dotAll(点匹配)判断是否启用dotAllnamedcapturedgroups(命名组捕获)ES5ES9loodbehindassert(后置断言)先断言再断言ES6-ES10学习布局RegExp在ES9中添加dotAll命名组捕获下面一行asserts正则模式中的dotAll(点匹配)点是dotAll,可以匹配任意字符,但是很多字符不能匹配。例如:四字节UTF-16字符换行符\\n\\r换行回车console.log(/foo.bar/.test('foo\nbar'))//falseconsole.log(/foo.bar/.test('fooabar'))//true加上s可以匹配换行符console.log(/foo.bar/s.test('foo\nbar'))//true加上s可以匹配换行符,plusu可以匹配4位UTF-16字符,点号功能无所不能。console.log(/foo.bar/us.test('foo\nbar'))判断dotAll是否启用,使用flags属性判断,如果不启用则为falseconstr=/foo.bar/console.log(r.dotAll)//falseconsole.log(r.flags)//emptyconstre=/foo.bar/sconsole.log(re.dotAll)//trueconsole.log(re.flags)//snamed捕获组(namedgroupcapture)groupcapture之前,但是namedgroupcapture只有ES5如何获取字符串中匹配的年月日?//先看match匹配到的值?console.log("2019-06-07".match(/(\d{4})-(\d{2})-(\d{2})/))//["2019-06-07","2019-06-07","2019","06","07",index:0,input:"2019-06-07",groups:undefined]//完全匹配//第一个括号组//第二个括号组//第三个括号组//index要匹配的字符数//输入完整的输入字符串//分组目前是空的,一会儿就知道用法了constt="2019-06-07".match(/(\d{4})-(\d{2})-(\d{2})/)console.log(t[1])//2019console.log(t[2])//06console.log(t[3])//07上面的方法,如果数据复杂的不好写,而且数组的个数是多少,所以最好加个名字ES9//括号里写?
