正则表达式详细使用教程

news2025/1/14 18:09:45

正则是用于匹配字符串中字符组合的模式,在js中,正则也是对象。

定义正则的两种方式:

1.const 变量名=new RegExp(/表达式/)

<script>
    const req = new RegExp(/a/)
    console.log(req.test("asd"))//true
  </script>

2.const 变量名=/表达式/

  const req = /前端/
    console.log(req.test("学习前端"))//true

test()是正则对象方法,用于检测字符串是否符合正则规范,该对象会返回true或false,其()内是想要测试的参数

3.边界符^ $,前者代表开始,后者代表结束

<script>

    //^代表以a开头
    const req = /^a/
    console.log(req.test("a"));//true
    console.log(req.test("abc"));//true
    console.log(req.test("bac"));//false

    //$代表以a结尾
    const req1 = /a$/
    console.log(req1.test("a"));//true
    console.log(req1.test("bca"));//true
    console.log(req1.test("bac"));//false

    // 正则不需要加引号,无论数字或字符,^ $这样写代表精确匹配,必须是abc才符合规范,否则为false
    const req = /^abc$/
    console.log(req.test("abc"));//true
    console.log(req.test("abcd"));//false
    console.log(req.test("aabcd"));//false

//单词边界,找出某句话的某个单词,例如:The cat scattered his food all over the room.想找到cat这个单词,但是如果只是使用/cat/这个正则,就会同时匹配到cat和scattered这两处文本,这时候就可以用到单词边界\b,他其实匹配的是能构成单词的字符(\w)和不能构成单词的字符(\W)中间的那个位置,也就是cat前后空隙.
    const req = /\bcat\b/g
    const str = 'The cat scattered his food all over the room'
    console.log(str.replace(req, 'dog'));//The dog scattered his food all over the room
  </script>

4.i:匹配大小写

<script>
    // i:忽略大小写
    const req = /a/i
    console.log(req.test("a"));//true
    console.log(req.test("abc"));//true
    console.log(req.test("ABC"));//true
  </script>

5.g:全局匹配

<script>
    const req = /js/
    const str = '学js,找js工作,成js大神'
    console.log(str.replace(req, "前端"));//学前端,找js工作,成js大神
    const req1 = /js/g
    const str1 = '学js,找js工作,成js大神'
    console.log(str1.replace(req1, "前端"));//学前端,找前端工作,成前端大神
  </script>

6.字符类[]

[]:表示有一系列字符可供选择,只要匹配其中一个就可以了

^:取反,注意要写到[]里

.:匹配的是除换行符之外的任意字符,''特殊也为false

<script>
    //1.只要匹配一个就符合规则
    const req = /[abc]/
    console.log(req.test("abcd"));//true
    console.log(req.test("andy"));//true

    //2.三选一,不含其他元素
    const req1 = /^[abc]$/
    console.log(req1.test("abc"));//false
    console.log(req1.test("andy"));//false
    console.log(req1.test("a"));//true

    //[]的^表示全取反,就是取abc之外的
    const req = /[^abc]/
    console.log(req.test("a"));//false
    console.log(req.test("d"));//true

//.匹配的是除换行符之外的任意字符,''特殊也为false
    const req = /./
    console.log(req.test(''));//false
    console.log(req.test("1"));//true
    console.log(req.test("aaa"));//true
    console.log(req.test("\n"));//false
    console.log(req.test("\r"));//false


  </script>

7.量词符

<script>
    //*号使用
    const req = /^a*$/
    console.log(req.test(""));//true
    console.log(req.test("a"));//true
    console.log(req.test("aaaa"));//true

    //+号使用
    const req1 = /^a+$/
    console.log(req1.test(""));//false
    console.log(req1.test("a"));//true
    console.log(req1.test("aaaa"));//true

    //?号使用
    const req3 = /^a?$/
    console.log(req3.test(""));//true
    console.log(req3.test("a"));//true
    console.log(req3.test("aaaa"));//false

    //{n}使用
    const req4 = /^a{3}$/
    console.log(req4.test("aaa"));//true
    console.log(req4.test("aaaa"));//false

    //{n,}使用
    const req5 = /^a{3,}$/
    console.log(req5.test("aaa"));//true
    console.log(req5.test("aaaa"));//true

    //{n,m}使用
    const req6 = /^a{3,5}$/
    console.log(req6.test("aaa"));//true
    console.log(req6.test("aaaa"));//true
    console.log(req6.test("aaaaa"));//true
    console.log(req6.test("aaaaaa"));//false
</script>

8.预定义类(简便写法,不做赘述)

9.分组及分组捕获、分支结构

   //分组
    let req = /(ab)+/  //匹配ab类型的
    console.log(req.test('ab'));//true
    console.log(req.test('abab'));//true

    //分组捕获  例如将YYYY-MM-DD格式替换为MM/DD/YYYY,使用()将\d{4}等分组
    let req1 = /^(\d{4})-(\d{2})-(\d{2})$/
    let date = '2024-02-25'
    console.log(req1.test(date)); //true
    //如何获取分组对应内容,使用$,$1代表第一块内容YYYY
    console.log(date.replace(req1, '$2/$3/$1'));//02/25/2024

    //分支结构
    let str = '学前端内容'
    let str1 = '学后端知识'
    let str2 = '学正则方法'
    let req3 = /前端|正则/
    console.log(req3.test(str));//true
    console.log(req3.test(str1));//false
    console.log(req3.test(str2));//true

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1470922.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ansible 更换aliyun 镜像 并下载tree

目录 查看系统版本找到对应 的版本对当前镜像进行备份下载aliyuan更换成功安装扩展源更换源之后 的三个命令 这里安装一个aliyun 的镜像 本案例 仅供实验参考 生产环境中请谨慎使用 查看系统版本 先查看linux 的系统 版本 ansible slave -m shell -a uname -a找到对应 的版本…

SpringBoot 学习笔记

文章目录 一、IoC二、AOP三、bean3.1 bean 生命周期3.2 三种依赖注入方式3.3 bean 线程安全 四、SpringMVC五、常用注解5.1 Scope5.2 PostConstruct 和 PreDestroy5.3 Component 和 Bean5.4 Autowired 和 Resource 六、基于 ApplicationContextAware 实现工厂模式七、事务失效八…

Cubase学习:Cubase 12常用快捷键

按键盘上的上下箭头就可以让选中的音符向上或向下移动 数字0键: 停止 Ctrl+数字 0 键: 新建视图层 Alt+数字0 键: 重新设置视图层 小数点键: 播放指针回零点 数字1 键: 左定位指针 数字 2 键: 右定位指针 数字3 键--数字9键: 分别控制 3--9 的7个定位标志 Alt+数字1 键--数字9键…

BoomWorks使用wxWidgets+CodeBlocks+GCC开发的软件合集

♦️ 定时执行专家&#xff08;TimingExecutor&#xff09; V7.0 《定时执行专家》是一款制作精良、功能强大、毫秒精度、专业级的定时任务执行软件。软件具有 25 种【任务类型】、12 种【触发器】触发方式&#xff0c;并且全面支持界面化【Cron表达式】设置。软件采用多线程并…

今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事 2月26日,星期一

每天一分钟&#xff0c;知晓天下事&#xff01; 2024年2月26日 星期一 农历正月十七 1、 气象台&#xff1a;3月初之前南方大部将维持阴雨雪天气。 2、 据海关统计&#xff0c;京津冀协同发展十年成效显著&#xff0c;外贸总量跨两个万亿台阶。 3、 2024年研考初试成绩今天起…

C++入门全集(2):类与对象【上】

目录 一、前言 二、struct在C中的变化 三、类的定义 四、类的访问限定符 五、封装 六、类的实例化 七、类对象模型 7.1 如何计算类对象的大小 7.2 类对象的存储方式 八、this指针 8.1 this指针的用途 8.2 this指针的特性 一、前言 C语言是一种面向过程的语言&…

Folx Pro Mac中文p破解版如何使用?为您带来Folx Pro 详细使用教程!

​ Folx pro 5 中文版是mac上一款功能强大的老牌加速下载软件&#xff0c;新版本的Folx pro整体界面非常的简洁和漂亮&#xff0c;具有非常好用的分类管理功能&#xff0c;支持高速下载、定时下载、速度控制、iTunes集成等功能。Folx pro兼容主流的浏览器&#xff0c;不但可以下…

什么是媒体发稿?发稿媒体分类及发稿流程

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 媒体发稿是一种企业推广和宣传的手段&#xff0c;通过媒体渠道传递企业信息和形象。 媒体发稿的含义在于&#xff0c;当企业有新闻、事件或其他消息需要对外公布时&#xff0c;可以选择…

氢氟酸在晶圆厂中的应用与防护

氢氟酸&#xff0c;这种剧毒液体竟然会被用在晶圆的生产中&#xff0c;这个可能让你匪夷所思。实际上&#xff0c;氢氟酸这种看似普通的清澈液体&#xff0c;实则在芯片生产中扮演了至关重要的角色。 氢氟酸的性质&#xff1f; 氢氟酸&#xff08;Hydrofluoric acid&#xff0c…

【VSCode】解决VSCode远程连接问题:远程主机可能不符合 glibc 和 libstdc++

今天用VSCode进行ssh连接时&#xff0c;提示“远程主机可能不符合 glibc 和 libstdc VSCode 服务器的先决条件”。查了一下发现这个问题主要是由于VSCode在一月份发布的最新版本v1.86中要求远程主机 glibc>2.28导致的&#xff0c;所以ssh连接Ubuntu 18.04的时候就会提示这个…

AI之T2I:Stable Diffusion 3的简介、安装和使用方法、案例应用之详细攻略

AI之T2I&#xff1a;Stable Diffusion 3的简介、安装和使用方法、案例应用之详细攻略 目录 Stable Diffusion 3的简介 1、效果测试 官方demo 网友提供 Stable Diffusion 3的安装和使用方法 1、安装 2、使用方法 Stable Diffusion 3的案例应用 1、基础案例 Stable Diff…

jmeter 测试数据库的详细方法

当前版本&#xff1a; jmeter 5.6.3mysql 5.7.39 简介 JMeter是一个功能强大的开源性能测试工具&#xff0c;它被广泛用于测试Web应用程序、Web服务、API、数据库以及其他类型的应用程序。支持测试数据库的性能和可靠性&#xff0c;可以模拟多个并发用户对数据库执行各种不同类…

react中修改state中的值无效?

// 初始化state state {personArr:[{name:张三,id:1},{name:李四,id:2},{name:王五,id:3}] }componentDidMount(){const newName 赵六const indexUpdate 1const newArr this.state.personArr.map((item,index)>{if(indexUpdate index){return {...item,name:newName}}e…

二阶低通滤波器(博途PLC SCL源代码)

在学习滤波器之前我们先了解下截止频率的准确定义,周期正弦信号经过传递函数后的输出信号,其幅值衰减-3dB时对应的频率。-3dB的含义是幅值衰减为原来的约0.707。更多滤波器信号处理相关内容请参看下面文章链接: 1、PLC一阶低通滤波器 https://rxxw-control.blog.csdn.net/…

174基于matlab的雷达数字信号处理

基于matlab的雷达数字信号处理。该程序具备对雷达目标回波的处理能力&#xff0c;能够从噪声中将目标检测出来&#xff0c;并提取目标的距离、速度、角度信息。有相应的试验文档。程序已调通&#xff0c;可直接运行。 174 雷达数字信号处理 目标检测出来 (xiaohongshu.com)

java数据结构与算法刷题-----LeetCode700. 二叉搜索树中的搜索

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 法一&#xff1a;递归2. 法二&#xff1a;迭代法 解题思路:时…

Qt RGB三色灯上位机

今天突发奇想做一个Qt RGB三色灯上位机&#xff0c;刚好手上有一个RGB三色灯和arduion开发板。 我是想实现一个颜色选择器界面然后鼠标点击颜色区域就可以发出rgb的值&#xff0c;然后把这个值通过串口线发送给arduion,arduion再解析出数据发送给RGB三色灯。 实现界面如下&…

STM32单片机基本原理与应用(九)

SDIO/SD卡实验 实验内容 将SD卡插入实训平台并烧写程序&#xff0c;开机后TFTLCD屏幕上会显示是否成功初始化SD卡并显示SD卡容量。 电路原理图 实验原理 SD卡的通信方式有两种&#xff1a;SPI和SDIO。SD卡有五种寄存器&#xff0c;如下表 SD 卡的指令由 6 个字节组成&…

Programming Abstractions in C阅读笔记:p293-p302

《Programming Abstractions in C》学习第73天&#xff0c;p293-p302总结&#xff0c;总计10页。 一、技术总结 1.时间复杂度 (1)quadratic time(二次时间) p293, Algorithms like selection sort that exhibit O(N^2) performance are said to run in quadratic time。 2…

Go Run - Go 语言中的简洁指令

原文&#xff1a;breadchris - 2024.02.21 也许听起来有些傻&#xff0c;但go run是我最喜欢的 Go 语言特性。想要运行你的代码&#xff1f;只需go run main.go。它是如此简单&#xff0c;我可以告诉母亲这个命令&#xff0c;她会立即理解。就像 Go 语言的大部分功能一样&…