ES9:扩展运算符 rest参数 正则扩展

一、rest 参数

function connect({host, port, ...user}){
    console.log(host);
    console.log(port);
    console.log(user);
}

connect({
    host: '127.0.0.1',
    port: 3306,
    username: 'root',
    password: 'root',
    type: 'master'
});

在这里插入图片描述

二、扩展运算符 对象合并

//对象合并
const skillOne = {
    q: '天音波'
}

const skillTwo = {
    w: '金钟罩'
}

const skillThree = {
    e: '天雷破'
}
const skillFour = {
    r: '猛龙摆尾'
}

const mangseng = {...skillOne, ...skillTwo, ...skillThree, ...skillFour};

console.log(mangseng)

在这里插入图片描述

三、正则扩展——命名捕获分组

提取 url 与 『标签文本』

// 声明一个字符串
let str = '<a href="http://www.atguigu.com">尚硅谷</a>';

//提取 url 与 『标签文本』
const reg = /<a href="(.*)">(.*)<\/a>/;

//执行
const result = reg.exec(str);

console.log(result);
console.log(result[1]);
console.log(result[2]);

在这里插入图片描述
我们可以看到上面的groups是 undefined,如果改成下面代码,可以看到我们所想要提取的值都在groups里了。

let str = '<a href="http://www.atguigu.com">尚硅谷</a>';
//分组命名
const reg = /<a href="(?<url>.*)">(?<text>.*)<\/a>/;

const result = reg.exec(str);

console.log(result);

console.log(result.groups.url);

console.log(result.groups.text);

在这里插入图片描述

四、正则扩展——正则断言

//声明字符串
let str = 'JS5211314你知道么555啦啦啦';

提取 str 的555

1. 正向断言

根据后面做判断。

//正向断言
const reg = /\d+(?=啦)/;
const result = reg.exec(str);
console.log(result);

在这里插入图片描述

2. 反向断言

根据前面做判断。

const reg = /(?<=么)\d+/;
const result = reg.exec(str);
console.log(result);

在这里插入图片描述

五、正则扩展——dotAll模式

dot: . 元字符 代表除换行符以外的任意单个字符

let str = `
<ul>
    <li>
        <a>肖生克的救赎</a>
        <p>上映日期: 1994-09-10</p>
    </li>
    <li>
        <a>阿甘正传</a>
        <p>上映日期: 1994-07-06</p>
    </li>
</ul>`;
//声明正则
const reg = /<li>.*?<a>(.*?)<\/a>.*?<p>(.*?)<\/p>/gs;
//执行匹配
// const result = reg.exec(str);
let result;
let data = [];
while(result = reg.exec(str)){
    data.push({title: result[1], time: result[2]});
}
//输出结果
console.log(data);

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值