Javascript – 正则表达式使用说明

简介

本文讲解Javascript正则表达式的使用。

 

匹配正则方法

通过使用 / / 中写入正则表达式:

let str = '<a href="https://www.unsoft.cn">悠恩科技</a>'
let reg = /<a href="(.*)">(.*)<\/a>/
const res = reg.exec(str)
/*
* 输出结果
* res[0]: <a href="https://www.unsoft.cn">悠恩科技</a>
* res[1]: https://www.unsoft.cn
* res[2]: 悠恩科技
* */

 

 

命名捕获分组[ECMA 9]

命名捕获分组是 ECMA 9 提供的新特性。

在以往的正则结果中,需要用数组下标来取匹配数据,ES9中可以加入命名,使用命名取得匹配数据

 

使用方法

在正则中加入 ?<name> 来定位匹配数据分组

let str2 = '<a href="https://www.unsoft.cn">悠恩科技</a>'
let reg2 = /<a href="(?<url>.*)">(?<name>.*)<\/a>/
const res2 = reg.exec(str)
console.log(res2.groups.url)
console.log(res2.groups.name)
/*
* 输出结果
* res2.groups.url : https://www.unsoft.cn
* res2.groups.name : 悠恩科技
* */

 

 

 

 

断言[ECMA 9]

断言,指的是,某个我想匹配入数据是在什么特征码附近

例如“JS332543你好444吗”,要取出数字“444”,可以使用正向断言(在‘吗’字之前的数字)
反向断言指的是,该匹配数据是在什么特征码之后

 

正向断言

使用 ?=xx  来断言

let str = 'JS332543你好444吗”'
let reg = /\d+(?=吗)/ // 这里的含意是:匹配在吗字之前的数字
let regX = /\d+/ // 这里的含意是:匹配字串的数字 输出结果是 332543
const res = reg.exec(str); // 输出 ==> res[0] = 444

 

 

反向断言

使用 ?<=xx  来断言

let str2 = 'JS332543你好444吗”'
let reg2 = /(?<=好)\d+/ // 这里的含意是:匹配在好字之后的数字
const res2 = reg2.exec(str2); // 输出 ==> res[0] = 444

 

dotAll模式[ECMA 9]

dot指的是 正则的 "." 通配符, . 通配符可以通配所有字符,但并不通配换行符,换行符用 \s+

而在ES9 中新增了dotAll模式中,则表示 . 可通配所有符号,包括换行符

 

ES6 中的通配换行符

let str = `
<ul>
    <li>
        <p>名字</p>
        <p>年龄</p>
    </li>
    <li>
        <p>名字2</p>
        <p>年龄2</p>
    </li>
</ul>
`

let reg = /<li>\s+<p>(.*?)<\/p>\s+<p>(.*?)<\/p><\/li>/;
let res = reg.exec(str);
/*
* 输出结果
* res[1] : 名字
* res[2] : 年龄
* */

 

dotAll 模式下通配换行符

让 "." 元字符支持匹配换行符

使用:在 //  后加参数s  即, //s

let reg2 = /<li>.*?<p>(.*?)<\/p>\.*?<p>(.*?)<\/p><\/li>/sg;
let res2 = reg2.exec(str);
/*
* 输出结果
* res[1] : 名字
* res[2] : 年龄
* */

 

 

如果您喜欢本站,点击这儿不花一分钱捐赠本站

这些信息可能会帮助到你: 下载帮助 | 报毒说明 | 进站必看

修改版本安卓软件,加群提示为修改者自留,非本站信息,注意鉴别

THE END
分享
二维码
打赏
海报
Javascript – 正则表达式使用说明
本文讲解Javascript正则表达式的使用。
<<上一篇
下一篇>>