码迷,mamicode.com
首页 > 其他好文 > 详细

正则表达式系列第一回--基本概念及正则对象

时间:2020-03-03 22:41:36      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:size   简单   转义   div   示例   没有   strong   一个   tip   

说起正则表达式,可以说是很多同行的痛点,包括我在内,看了会,会了忘,因此写一个系列的小教程,试图加深一下印象。

 

基本概念

所谓正则表达式,就是一个用于匹配符合某种规则的字符串的表达式。简单来说,就是我们用表达式的形式来创建一个规则,然后拿着这个规则去不同字符串里面进行匹配,看下有没有匹配上我们规则的字符串。

 

正则对象

要创建正则对象,有两种方法,一是字面量,二是构造函数

字面量形式,是我们平时最常用的,它简洁美观,大部分时间我们都在使用它,它的组成为 / 自定义规则 /gim ,首尾两个正斜杠,中间是一系列我们自己写的语法规则,末尾是修饰符。

const reg = /\d/g

在上面这个示例中,里面只创建了一个简单的规则,它由一个元字符\d组成,\d(即digital)代表一个数字。

修饰符只有三个,分别是g(global)全局匹配i(ignoreCase)忽略大小写匹配m(mutiple)多行匹配

 

字面量形式,一般我们吐槽它叫“转义再转义”,这种形式很少用到,它用构造函数去实例化一个正则对象,接收两个参数,第一个参数是正则文本,第二个参数是正则标志

其中,相比于字面量形式,正则文本不需要首尾两个正斜杠/作为规则边界,其次,正则文本里面的反斜杠需要再用反斜杠\转义一下。

const reg = new RegExp(‘\\d‘, ‘g‘)

这种形式看起来非常啰嗦,好像对比字面量形式它一无是处。

但是有一种情况是必须要用到构造函数形式来实例化正则对象的,那就是:当你需要传入变量的时候

const TIMES = 3;

const reg = new RegExp(`\\d{${TIMES}}`, ‘g‘); // 相当等于const reg = new RegExp(‘\\d{3}‘, ‘g‘)

这里我们需要用一个量词来修饰\d出现了几次,假设这个出现次数需要动态传入,不是写死的,就只能用构造函数形式,上面的例子中,采用ES6的字符串模板将常量TIMES动态传入,这里是为了方便演示写成常量,在实际项目中,它可以是一个动态的传入变量。

正则表达式系列第一回--基本概念及正则对象

标签:size   简单   转义   div   示例   没有   strong   一个   tip   

原文地址:https://www.cnblogs.com/zhangnan35/p/12404996.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!