【学习笔记】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`) // 标签函数的使用
}

上一篇下一篇

猜你喜欢

热点阅读