JavaScript中的正则表达式使用总结

JavaScript中的正则表达式是一种强大的工具,用于处理文本数据,包括搜索、匹配和替换文本中的特定字符或模式。以下是对JavaScript中正则表达式使用的一些总结:

1. 创建正则表达式

在JavaScript中,你可以使用字面量或RegExp对象来创建正则表达式。

字面量方式:let regex = /pattern/;
RegExp对象方式:let regex = new RegExp('pattern');
2. 标志

正则表达式可以带有一些标志,这些标志用于修改搜索的行为。常见的标志有:

`g`:全局搜索。
`i`:不区分大小写搜索。
`m`:多行搜索。
`u`:完全匹配Unicode字符。
`y`:执行“粘性”搜索, 只匹配从目标字符串的当前位置开始可以匹配的字符串。
3. 元字符

正则表达式包含一些特殊字符,这些字符在正则表达式中有特殊的含义,称为元字符。例如:

`.`:匹配除换行符以外的任意字符。
`*`:匹配前面的子表达式零次或多次。
`+`:匹配前面的子表达式一次或多次。
`?`:匹配前面的子表达式零次或一次。
`^`:匹配输入字符串的开始位置。
`$`:匹配输入字符串的结束位置。
`|`:或者。匹配`|`左右任意一个表达式。

例如,要匹配一个或多个连续的数字,可以使用`/\d+/`。
4. 字符类

字符类用于匹配方括号中的任意字符。例如,[abc]将匹配任何一个字符'a'、'b'或'c'。你也可以使用-来指定一个范围,例如[a-z]将匹配任何小写字母。
5. 预定义类

JavaScript的正则表达式还提供了一些预定义的字符类,用于匹配常见的字符集。例如:

`\d`:匹配一个数字字符。等价于`[0-9]`。
`\D`:匹配一个非数字字符。等价于`[^0-9]`。
`\w`:匹配包括下划线的任何单词字符。等价于`[a-zA-Z0-9_]`。
`\W`:匹配任何非单词字符。等价于`[^a-zA-Z0-9_]`。
`\s`:匹配任何空白字符,包括空格、制表符、换页符等等。等价于`[ \f\n\r\t\v]`。
`\S`:匹配任何非空白字符。等价于`[^ \f\n\r\t\v]`。
6. 使用正则表达式

一旦你有了正则表达式,你可以使用`String`对象的`match()`、`replace()`、`search()`和`split()`等方法来执行各种操作。例如:

`str.match(regex)`:返回一个包含匹配结果的数组。
`str.replace(regex, newStr)`:替换与正则表达式匹配的子串。
`str.search(regex)`:返回匹配结果的索引。如果没有找到匹配项,则返回-1。
`str.split(regex)`:把字符串分割为字符串数组。
7. 非捕获分组和前瞻断言

你还可以使用`(?:...)`进行非捕获分组,或者使用`(?=...)`、`(?!...)`进行前瞻断言,这些都是正则表达式的高级用法。
8. 注意事项

使用正则表达式时,要注意转义特殊字符,以避免意外的匹配。例如,如果你要匹配文本中的反斜杠`\`,你需要使用`\\`进行转义。

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

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

相关文章

管道疏通房屋补漏官方网站源码-视频搭建教程

[安全]修复jquery低版本的xss安全漏洞,升级用最新版jquery; [新增]后台的登录页、欢迎页支持自定义模板文件; [新增]后台多语言列表管理支持手工同步文档数据; [新增]后台商品发布时,单规格商品支持会员折扣价的设置…

微信小程序多图列表页面性能问题为什么会出现?如何解决?

微信小程序中的多图列表页面性能问题主要是由于以下几个原因导致的: 图片过大:在多图列表页面中,如果图片过大,会导致页面加载时间过长,从而影响用户体验。请求过多:在多图列表页面中,如果一次…

C语言自定义类型联合体和枚举

union n.工会;联邦,联盟;协会,俱乐部;联合,合并; 结婚,婚姻;美利坚合众国(the Union); (数)并,并集…

Java学习10

目录 一.多态: 1.方法的多态: 2.对象的多态: 3.多态的注意事项与细节: 5.多态的应用: 二.Java的动态绑定机制: 三.多态应用: 1.多态数组: 2.多态参数: 三.Object类&#xf…

交互式QGraphicsView(平移/缩放/旋转)

一 简述 Graphics View提供了一个平台,用于大量自定义 2D 图元的管理与交互,框架包括一个事件传播架构,支持场景 Scene 中的图元 Item 进行精确的双精度交互功能。Item 可以处理键盘事件、鼠标按下、移动、释放和双击事件,同时也…

golang实现枚举

golang实现枚举 golang实现枚举 golang本身是没有枚举类型的,不像c语言,但是可以通过const & iota实现枚举的能力。 枚举在类似于业务状态或者少量下拉选择框中经常使用,比如 业务状态:待开始、进行中、失败、成功package ma…

福昕阅读器 PDF 文档基本操作

福昕阅读器 PDF 文档基本操作 References 转至 PDF 顶部 快捷键:Home. 转至 PDF 顶部 快捷键:End. 打开超链接 文本选择工具 -> 手形工具 (Hand Tool) -> 点击超链接 福昕阅读器 同时在多个窗口中打开多个文件 文件 -> 偏好设置 -> 文…

高中信息技术教资刷题笔记_选择题篇

1.信息技术基础 位与字节的换算 模2除法运算 网页保存 进制之间的计算 教你快速学会二进制、十进制、十六进制之间的转换 - 知乎 (zhihu.com) 原码、补码、反码计算 物联网技术 位运算 按位与:同位置为1,则为1,其他都是0按位或:有…

黑帽子学Python

黑帽子学Python Python位运算符 运算符描述示例&按位与运算符:参与运算的两个值,如果两个相应位都为1,则该为的结果为1,否则为0(a&b)输出结果12,二进制解释:0000 1100按位或运算符:只…

MRC是谁?- 媒体评级委员会 Media Rating Council

在在线广告的世界里,有许多不同的技术和实践用于提供和衡量广告。对于广告商、出版商和营销人员来说,了解这些技术是如何工作的以及如何有效使用这些技术很重要。在这方面发挥关键作用的一个组织是媒体评级委员会(MRC)。 1. 了解…

Android 项目新建问题总结

title: Android 项目新建问题总结 search: 2024-03-24 tags: “#Android 项目新建问题总结” Android 项目新建问题总结 一、gradle 项目每次都自动下载依赖包到C盘 背景:idea 首次打开一个 gradle 项目,都会在 C 盘下载项目所需的依赖包,但…

Automatic Prompt Engineering

让大模型自己生成prompt,生成提示(prompt)存在两种不同的操作方式。第一种方式是在文本空间中进行,这种提示以离散的文本形式存在。第二种方式是将提示抽象成一个向量,在特征空间中进行操作,这种提示是抽象…

React高阶组件(HOC)

高阶组件的基本概念 高阶组件(HOC,Higher-Order Components)不是组件,而是一个函数,它会接收一个组件作为参数并返回一个经过改造的新组件: const EnhancedComponent higherOrderComponent(WrappedCompo…

Go 实现fsnotify

【官方操作】 package mainimport ("log""github.com/fsnotify/fsnotify" )func main() {watcher, err : fsnotify.NewWatcher()if err ! nil {log.Fatal(err)}defer watcher.Close()done : make(chan bool)go func() {for {select {case event, ok : <…

使用 Docker Compose 部署 Spring Boot 应用

使用 Docker Compose 部署 Spring Boot 应用 第一步&#xff1a;创建 Spring Boot 应用的 Dockerfile 在您的 Spring Boot 项目根目录中创建一个 Dockerfile。 编辑 Dockerfile&#xff0c;添加以下内容&#xff1a; # 基础镜像使用 OpenJDK FROM openjdk:11-jdk-slim# 维护者…

Gitee删除自己本地仓库

1、打开自己的本地仓库 2、点击管理 3、选择删除仓库 4、将□的内容复制到⭕里

mysql 存储引擎 基本介绍

目录 一 存储引擎概念介绍 &#xff08;一&#xff09;存储引擎概念 &#xff08;二&#xff09;MySQL常用的存储引擎 &#xff08;三&#xff09;存储引擎运作方式 二 MyISAM 存储引擎介绍 &#xff08;一&#xff09; MyISAM 存储引擎特点 1&#xff0c;不支持…

基于51单片机数控直流电压源proteus仿真LCD显示+程序+设计报告+讲解视频

基于51单片机数控直流电压源proteus仿真LCD显示( proteus仿真程序设计报告讲解视频&#xff09; 仿真图proteus7.8及以上 程序编译器&#xff1a;keil 4/keil 5 编程语言&#xff1a;C语言 设计编号&#xff1a;S0072 讲解视频 基于51单片机数控直流电压源proteus仿真程序…

手机IP地址如何更换

手机IP地址的修改方法可以通过以下几种方式实现&#xff1a; 1. 手动更改IP地址&#xff1a;打开手机设置&#xff0c;进入网络设置页面&#xff0c;找到IP地址更改选项。在此页面输入新的IP地址和子网掩码&#xff0c;并启用DHCP服务器。请注意&#xff0c;并非所有手机都支持…

博途建立S7-1200PLC与HMS AB7013Profinet通讯

1、新建一个博图项目1200PLC .CPU 1214C ACDC/RIY 6ES7 214-1BG31-0x80 2、安装GSD文件 Install general station description fle (GsD) GSDMLV2.3-HMS-ABC PROFINET GSD 3、连接PLC 4、在线访问 5、增加访问子网络 6、设定IP地址 7、增加AnyBus模块 8、设定模块的IP地址及…