ES2018-正则 &标签函数

本文详细介绍了正则表达式的使用技巧,包括命名捕获、反向引用及替换等高级特性,并演示了如何利用这些特性进行日期格式转换等实际操作。此外,还讲解了dotAll模式的应用场景及标签函数的基础用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、正则

1.命名捕获

  语法:(?<名字>)

let str='2018-09-03';
let reg=/(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/;
let {year,month,day}=str.match(reg).groups;
console.log(year,month,day);//2018 09 03

2.反向引用命名捕获

  语法: \k<名字>

let str='welcome-welcome'
let reg=/^(?<a>welcome)-\k<a>$/;
console.log(reg.test(str));//true


let str='welcome-welcome-welcome'
let reg=/^(?<a>welcome)-\k<a>-\1$/;
console.log(reg.test(str));//true

3.替换replace

  语法 $<名字>

let str='2018-09-03';
let reg=/^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})$/;

console.log(str.replace(reg,'$<month>/$<day>/$<year>'));//  09/03/2018

console.log(str.replace(reg,'$2/$3/$1'));//  09/03/2018

let str1=str.replace(reg,(...args)=>{
    console.log(args);//["2018-09-03", "2018", "09", "03", 0, "2018-09-03", {year: "2018", month: "09", day: "03"}]
    let {year,month,day}=args[args.length-1];
    return month+'/'+day+'/'+year;
});
console.log(str1);//09/03/2018

 

4.dotAll模式 (s) 匹配任意内容

let str='aaa\nbbb';
let reg=/^\w+.\w+$/;
console.log(reg.test(str));//false

let str='aaa\nbbb';
let reg=/^\w+.\w+$/s;//s模式
console.log(reg.test(str));//true

 

二、函数

1.标签函数

function fn(args){
    console.log(args);//["abc", raw: Array(1)]
    console.log(args[0]);//abc
}
// 标签函数调用
fn`abc`

 

转载于:https://www.cnblogs.com/yuesu/articles/9578915.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值