JavaScript - Day14 - 正则表达式

本文详细介绍了JavaScript中正则表达式的概念,包括其作用(验证、提取和替换),字面量定义以及具体规则,如字符匹配、修饰符和使用方法,如test、exec、match和replace。此外,还提供了手机号、QQ邮箱和网易邮箱的示例规则。
摘要由CSDN通过智能技术生成

一、概念

1. 用于规范字符串的表达式,对字符串的作用有三个

 (1)验证字符串是否符合规则

                 正则.test(字符串) ----- 返回布尔值

 (2)将字符串中符合规则的部分提取出来 ----- 返回数组,下标0是我们要的结果

                 正则.exec(字符串)

                 字符串.match(正则)

 (3)将字符串中符合规则的部分替换掉

                 字符串.replace(正则, 新的内容) ----- 返回替换后的字符串

二、字面量定义

在js中任意的数据都有两种定义方式

       1.字面量

              定义方式:

                 (1)var reg = /具体规则/

                 (2)var reg = new RegExp() ----- regular expression

       2.构造函数方式 - 只能得到对象 - new 函数

js底层处理各种数据的时候,都在使用对象处理

为了方便使用和学习,才会有基本数据类型

三、具体规则

 (1)字符:表示字符串组成部分的字符

                 普通字符 - 匹配字符串中的字符

                 元字符(特殊符号)  - 特殊符号匹配字符串:

                                                            1. \d ----- 匹配任意一个数字

                                                            2. \w ----- 匹配一个字母或数字或下划线

                                                            3. \s ----- 匹配一个空格

                                                            4. [] ------ 匹配[]中的任意一个字符

                                                            5. . ------- 匹配除换行符以外的任意一个字符

                 其他的元字符(特殊符号)  - 特殊符号匹配字符串(不常用):

                                                            1. \b ------ 匹配字符串中边缘(换行和空格)

                                                            2. \D ------ 匹配任意一个非数字的字符

                                                            3. \W ------ 匹配任意一个不非字母,数字,下划线

                                                            4. \S ------ 匹配任意一个非空格字符

 (2)字符的修饰符

                 1. {n} ----- 前面字符必须是n个

                 2. {n,} ---- 前面的字符最少n个

                 3. {n,m} -- 前面的字符最少n个,最多m个

                 4. + ------- 前面的字符最少1个

 (3)其他的修饰符

                 1. ^ ----- 修饰开头 ----- 放在具体规则的最前面,表示这个规则由他后面的字符开头

                 2. $ ----- 修饰结尾 ----- 放在具体规则的最后面,表示这个规则由他前面的字符结尾

                 3. | ------ 或者

                 4. [^] ---- 非

                 5. \ ------ 转义

                 6. g ----- 放在斜杠后面 --- 开启全局模式

                 7. i ------ 忽略大小写

                 8. [\u4e00-\u9fa5] ----- 匹配任意一个中文汉字

g 是用来表示全局匹配的标志,而不是贪婪模式的标志。标志 g 告诉正则表达式引擎在目标字符串中查找所有满足规则的匹配,而不仅仅是第一个匹配。如果不使用 g 标志,正则表达式通常只会找到第一个匹配项。
贪婪模式是一种匹配策略,是指正则表达式在匹配时倾向于尽可能多地匹配字符。贪婪模式可以通过在量词后面添加一个问号 ? 来禁用,形成非贪婪模式,也称为惰性模式或最小匹配模式。注意:贪婪模式和非贪婪模式仅适用于某些量词,如 +、*、? 和 {}。其他正则表达式元字符(如字符类、分组等)不受贪婪模式的影响。

四、使用

1.验证字符串

     (1)reg.test(被验证的字符串) 

                      检测字符串中是否有符合规则的部分 - 返回布尔值

     (2)字符串.search(正则表达式) 

                      search方法本质上是在从字符串中查找满足规则部分在字符串中的下标,找到就返回下标,找不到返回-1。

2.提取字符串

     (1)正则表达式.exec(字符串)

                      exec返回数组,数组的第一个元素是满足规则的部分。如果字符串中没有满足规则的,则返回null

     (2)字符串.match(正则表达式)

                      match返回数组,数组的第一个元素是满足规则的部分。如果字符串中没有满足规则的,则返回null

var reg = /[\u4e00-\u9fa5]+/g // 正则表达式的斜杠后面添加g,就开启了贪婪模式

3.替换字符串

     (1)字符串.replace(正则表达式,新的部分)

                      替换字符串只有字符串的replace方法可以实现,replace方法可以将满足规则的部分替换成新的部分

var str = '3/30/2023'
// 转成2023年3月30日
var reg = /(\d+)\/(\d+)\/(\d+)/
str = str.replace(reg, '$3年$1月$2日') /* 给正则中加了()在替换的时候,可以使用$1表示
                         第一个小括号中匹配到的内容,$2表示第二个小括号中匹配到的内容 */
console.log(str);

五、重点

1.手机号的规则:由1开头,第二位数字:3456789,剩下的9个数字,是任意数字,共11位

var reg = /^1[3-9]\d{9}$/

2.qq邮箱的规则:由1-9开头,剩下的是4-9个任意数字,总长度5~10位,添加@qq.com ------ 转义符在正则规则中同样适用

var reg = /^[1-9]\d{4,9}@qq\.com$/

3.网易邮箱的规则:6~18个字符,由字母开头,数字字母下划线组成 ----- 在正则中或者 通过  |  表示

var reg = /^[a-zA-Z]\w{5,17}@(163|126)\.com$/

4.qq邮箱或网易邮箱

var reg = /(^[1-9]\d{4,9}@qq\.com$)|(^[a-zA-Z]\w{5,17}@(((126|163)\.com)|(yeah\.net))$)/

5.test

6.exec

7.match

8.replace

  • 14
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值