正则表达式的认识

目录

 

一、正则表达式是什么?

(一)概念

(二)应用场景

二、正则的创建和构成(基本语法)

1.字面量创建

2.直接实例化创建

三、正则表达式的常用方法-------test方法

四、正则表达式的构成

(一)普通字符

(二)特殊字符(元字符)

1、定位符

2.表示数量的限定字符(重复字符)

3.转义字符

4.备选字符

五、正则表达式的匹配模式

1.贪婪模式

2.惰性模式

六、修饰符

七、字符串对象中和正则表达式结合使用的方法

(一)search()方法

(二)match()方法

(三)replace()方法

(四)split()方法

总结


一、正则表达式是什么?

(一)概念

正则表达式,又称规则表达式,(英语:Regular Expression,在代码中常简写为regex、regexp或RE),是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符"),作用就是用来检验字符串是否符合格式要求,或者在字符串中查找是否有符合格式要求的字符串。

(二)应用场景

对表单域项目(用户名、密码、邮箱、qq号码、手机等等)进行验证,内容替换、获取,手机号替换、 敏感词替换等等。

二、正则的创建和构成(基本语法)

1.字面量创建

语法:let reg =  / 正则表达式 / 修饰符;

例如:正则匹配hello

 <script>
    let reg = /hello/;
  </script>

注意:正则两边加上/,不要加单双引号。

2.直接实例化创建

语法:;let reg = new RegExp( '正则表达式' ,修饰符)

例如:匹配hello 

<script>
    let reg = new RegExp('hello');
  </script>

注意:以对象的方式创建需要加单双引号,但是不要加 / /

三、正则表达式的常用方法-------test方法

作用:验证字符串是否符合正则表达式的格式要求

语法:正则表达式 . test ( 字符串  )

返回值: true (匹配成功,符合要求)、   false (匹配失败,不符合要求)

<script>
    let reg = /a/;
    let res = reg.test('abc');
    console.log(res);//true
  </script>

四、正则表达式的构成

(一)普通字符

例如:数字0-9、字母 a-z A-Z、_

(二)特殊字符(元字符)

1、定位符

1)^   表示以谁开始

 <script>
    let reg = /^a/;//表示以字母a开始
    console.log(reg.test('abc'));//true
    console.log(reg.test('bcd'));//false
  </script>

2)$  表示以谁结束

<script>
    let reg = /d$/;//表示以字母d结束
    console.log(reg.test('abc'));//false
    console.log(reg.test('bcd'));//true
  </script>

3. ^ 和 $ 可以结合起来使用,会对字符串的内容和长度同时进行验证

<script>
    let reg = /^a$/;//表示字符串中只能有一个字符串,且只能是a
    console.log(reg.test('abc'));//false
    console.log(reg.test('a'));//true
  </script>

2.表示数量的限定字符(重复字符)

限定符作用说明例子
*重复0次或者更多次/a*/ 表示a的个数最少0个,最多无限个
+重复1次或者更多次/a+/ 表示a的个数最少1个,最多无限个
重复0次或者1次/a?/ 表示a的个数最少0个,最多一个
{n}重复n次/a{3}/ 表示字符串中包含3个字符a
{n,}重复n次或者更多次,最少出现n次/a{3,}/ 表示字符串 a的个数大于等于3个
{n,m}重复n到m次/a{1,5}/ 表示a的个数为1-5个
[ ]匹配字符组内的内容

[abc]  表示匹配abc中的任意一个

3.转义字符

转义字符:所谓转义字符就是指在普通字符的前面加反斜线,使得他具有特定的功能和含义,也可以在具有特定的功能和含义的字符前面加反斜线,将他转换为普通字符。比如:\d表示任意一个数,\/表示将正则表达式中的斜线转换为普通的斜线

\d

表示任意一个数字
\D表示任意一个非数字
\w表示任意一个数字、字母、下划线
\W表示任意一个非 数字、字母、下划线
\s表示任意一个空白符,如:空格
\S表示任意一个非空白符

4.备选字符

[ \u4e00-\9fa5] : 表示任意的一个汉字

五、正则表达式的匹配模式

1.贪婪模式

指正则表达式在对字符串进行匹配时尽可能多的匹配字符,默认就是贪婪模式

2.惰性模式

也称懒惰模式,指正则表达式在对字符串进行匹配时尽可能少的匹配字符,默认是贪婪模式,如果要将贪婪模式转化为懒惰模式,需要在数量修饰符后面加问号

                          贪婪                          惰性
                            *                            *?
                           +                            +?
                           ?                            ??
                          {n}                            {n}?
                          {n,}                           {n,}?
                         {n,m}

                          {n,m}?

六、修饰符

修饰符说明
i忽略大小写
g全局匹配
gi即忽略大小写,也全局匹配

七、字符串对象中和正则表达式结合使用的方法

(一)search()方法

语法:字符串.search(待查找的字符串 | 正则表达式)

作用:搜索字符串中是否有指定元素,返回符合条件的第一个元素的下标,没有返回-1

<script>
    let str = 'Are you confident about the exam tomorrow ';
    let reg = /o/g;
    / / search(正则)
    let res1 = str.search(reg);
    console.log(res1);//5
    / / search(字符串)
    let res2 = str.search( 'o', 'g');
    console.log(res2);//5
</script>

注意:只能返回第一个符合条件的元素下标,即使加上全局匹配也没用

(二)match()方法

语法:字符串.match(待匹配的字符串 | 正则表达式)

作用:匹配符合条件的内容,返回的是一个数组,就算只有一个符合,返回的也是数组。

<script>
    let str1 = 'Are you confident about the exam tomorrow';
    let reg1 = /o/;
    let res1 = str1.match(reg);
    console.log(res1);
    //[ 'o', index: 5, input: 'Are you confident about the examtomorrow ', groups: undefined]
    let reg2 = /o/g;  //全局匹配
    let res2 = str1.match(reg);
    console. log(res2);
    //['o', 'o', 'o', 'o ', 'o ', 'o']
</script>

注意:默认情况下只返回第一个符合要求的内容。

(三)replace()方法

语法:字符串.replace(待匹配的字符串 | 正则表达式 , 替换的内容)

作用:替换字符串中的数据,返回替换后的字符串

<script>
    let str = '背对背拥抱';
    let reg1 =/背/;
    let res1 = str.replace(reg1,"面");
    console.log(res1);  //面对背拥抱
    let reg2 =/背/g; //全局匹配
    let res2 = str.replace(reg2,"面");
    console.log(res2);  //面对面拥抱
 </script>

注意:默认情况下只替换第一个符合要求的数据

(四)split()方法

语法:字符串.split(正则表达式)

作用:将一个字符串拆分成数组,返回拆分过后的数组

<script>
    let str ='a1b2c3d4e5f';
    let reg = /\d/;//匹配数字
    let result = str.split(reg);//将数字拆分
    console.log(result);
    //['a', 'b', 'c', 'd', 'e', 'f']
</script>

注意:即使不设置全局匹配,也是全部拆分的

总结


以上就是今天要讲的内容,本文仅仅简单介绍了正则表达式的语法及方法,希望对大家有所帮助

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值