【学习笔记】ES2018 (ES9)新增的东西
2019-07-15 本文已影响0人
Spidd
/*----------ES2018 (ES9)新增的东西-----------*/
/*
* 【语法】
* * -------- 命名捕获 -------------
* (?<命名>)
* let reg = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/;
* * -------- 反向引用命名捕获 -------------
* \k<命名>
* let reg = /^(?<Strive>welcome)-\k<Strive>-\1$/;
* * -------- 替换 -------------
* str = str.replace(reg,'$<year>/$<month>/$<day>')
*
* 【方法】
* */
{
let reg = /^(?<Strive>welcome)-\k<Strive>$/;
let str = 'a-a';
let str1 = 'Strive-Strive';
let str2 = 'welcome-welcome';
let str3 = 'welcome-welcome-welcome';
console.log(reg.test(str)); // false
console.log(reg.test(str1)); // false
console.log(reg.test(str2)); //true
console.log(reg.test(str3)); //true
}
{
let reg = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/;
let str = '2018-03-20';
str.replace(reg, (...args)=>{
console.log(...args)
let {year, month, day} = args[args.length-1];
console.log(year, month, day)
})
}
/*
* 【语法】
* * -------- dotAll模式 -------------
* 之前'.'在正则里表示匹配任意东西,
* let reg1 = /^\w+.\w+$/s; //dotAll 模式 s
*
* 【方法】
* */
{
let reg = /^\w+.\w+$/;
let reg1 = /^\w+.\w+$/s; //dotAll 模式 s
let str = 'sdf\nsdf';
let str1 = 'sdf-sdf';
console.log(reg.test(str)); //false
console.log(reg1.test(str)); //true
console.log(reg.test(str1)); //true
}
/*
* * -------- 标签函数 -------------
* * 【语法】
* function fn(){}
fn`aaa` // 标签函数的使用
*
* 【方法】
* */
{
function fn(a){
return a //arg 返回的是arguments数组
}
console.log(fn`aaa`) // 标签函数的使用
}