【JavaScript由浅入深】常用的正则表达式

news/2024/11/24 2:29:01/

【JavaScript由浅入深】常用的正则表达式

文章目录

  • 【JavaScript由浅入深】常用的正则表达式
  • 写在前面
  • 一、认识正则表达式
    • 1.1 正则表达式的概念
  • 二、正则表达式的使用
    • 2.1 使用构造函数创建正则表达式
    • 2.2 使用字面量创建正则表达式
    • 2.3 补充
  • 三、正则表达式常见规则
    • 3.1 字符类
    • 3.2 锚点、转义字符串
    • 3.3 集合和范围
    • 3.4 量词
  • 四、字符串与正则表达式的应用
    • 4.1 将字符串分割为字符串数组
    • 4.2 检索与正则表达式相匹配的值

写在前面

🤗这里是前端程序员小张!

🌻人海茫茫,感谢这一秒你看到这里。希望我的文章对你的有所帮助!

🌟愿你在未来的日子,保持热爱,奔赴山海!

一、认识正则表达式

1.1 正则表达式的概念

  • 正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串
  • 许多程序设计语言都支持利用正则表达式进行字符串操作。
  • 简单概况:正则表达式是一种字符串匹配利器,可以帮助我们搜索、获取、替代字符串;
  • 在JavaScript中,正则表达式使用RegExp类来创建,也有对应的字面量的方式
    • 正则表达式主要由两部分组成:模式(patterns)和匹配模式(flags)

二、正则表达式的使用

2.1 使用构造函数创建正则表达式

语法

let 变量 = new RegExp("正则表达式","匹配模式");

在构造函数中可以传递一个匹配模式作为第二个参数

  • i 忽略大小写
  • g 全局匹配模式
  • m 多行匹配

2.2 使用字面量创建正则表达式

语法

var 变量 = /正则表达式/匹配模式;

2.3 补充

使用typeof检查正则对象,会返回object

正则表达式的方法:test()

使用test()可以检查一个字符串是否符合正则表达式的规则,如果符合则返回true,否则返回false

三、正则表达式常见规则

3.1 字符类

字符类(Character classes) 是一个特殊的符号,匹配特定集中的任何符号

  • \d 数字0到9
  • \s 空格符号:包括空格,制表符 \t,换行符 \n 和其他少数稀有字符,例如 \v,\f 和 \r。
  • \w 拉丁字母或数字或下划线 _
  • . . 是一种特殊字符类,它与 “除换行符之外的任何字符” 匹配

3.2 锚点、转义字符串

  • 符号 ^ 匹配文本开头;
  • 符号 $ 匹配文本末尾;
  • 如果要把特殊字符作为常规字符来使用,需要对其进行转义:
    • 只需要在它前面加个反斜杠;
  • 常见的需要转义的字符:
    • [] \ ^ $ . | ? * + ( )
    • 斜杠符号 ‘/’ 并不是一个特殊符号,但是在字面量正则表达式中也需要转义

3.3 集合和范围

  • 有时候我们只要选择多个匹配字符的其中之一就可以
    • 在方括号 […] 中的几个字符或者字符类意味着“搜索给定的字符中的任意一个”;
  • 方括号也可以包含字符范围;
    • 比如说,[a-z] 会匹配从 a 到 z 范围内的字母,[0-5] 表示从 0 到 5 的数字,[A-z] 会匹配任意字母;
    • [0-9A-F] 表示两个范围:它搜索一个字符,满足数字 0 到 9 或字母 A 到 F;
    • \d —— 和 [0-9] 相同;
    • \w —— 和 [a-zA-Z0-9_] 相同;

3.4 量词

  • 数量{n}
    • 确切的位数:{5}
    • 某个范围的位数:{3,5}
  • 缩写
    • +:代表“一个或多个”,相当于 {1,}
    • ?:代表“零个或一个”,相当于 {0,1}。换句话说,它使得符号变得可选;
    • *:代表着“零个或多个”,相当于 {0,}。也就是说,这个字符可以多次出现或不出现;

四、字符串与正则表达式的应用

4.1 将字符串分割为字符串数组

方法中可以传递一个正则表达式作为参数,将会根据正则表达式去拆分字符串

//根据任意字母来将字符串拆分
var str = "1a2b3c4d5f6e7"
var result = str.split("/[A-z]/");
console.log(result);

4.2 检索与正则表达式相匹配的值

检索到指定内容,则会返回其首次出现的索引号,没有检索到则返回-1

可以接收一个正则表达式作为参数,然后根据正则表达式去检索字符串

//搜索字符串中是否含有abc或aec或afc
var str = "hello abc hello aec hello afc";
result = str.search(/a[bef]c/);
console.log(result);

http://www.ppmy.cn/news/63642.html

相关文章

Oracle imp/impdp、exp/expdp的使用方法

以下是创建新用户并授权角色和系统权限,使用imp/impdp导入dmp文件到数据库,exp/expdp导出文件到数据库的综合示例: 创建新用户并授权角色和系统权限 CREATE USER new_user IDENTIFIED BY password;GRANT CONNECT, RESOURCE TO new_user;GRA…

关于百度地图开放平台api覆盖物“自定义Marker图标”不能正常显示的解决方案

“自定义Marker图标”不能正常显示(用网上图片能正常显示,用本地图片就不能显示), 分两种情况: 1.网上图片,往往是图片的url地址有问题,也可能是url地址的图片失效了。 2.本地图片,这…

C++数据结构与算法详解:链表、栈、队列、树、二叉树和图结构的实现与应用

C/C 基础知识 三一、链表1.1 定义1.2 实现1.2.1 单向链表1.2.2 双向链表1.2.3 常见操作(反转 合并 查找)1.3 应用二、 栈-Stack 队列-Queue1.1 定义1.2 实现1.2.1 数组实现 栈和队列 示例:1.2.3链表实现 栈和队列 示例:1.3 应用三、树和二叉树1.1 定义1.…

【Linux】Linux安装Redis(图文解说详细版)

文章目录 前言第一步,下载安装包第二步,上传安装包到/opt下(老规矩了,安装包在opt下)第三步,解压安装包第四步,编译第五步,安装第六步,配置redis第七步,设置开…

【华为OD机试python】静态扫描【2023 Q1 A卷|100分】

华为OD机试- 题目列表 2023Q1 点这里!! 2023华为OD机试-刷题指南 点这里!! 题目描述 静态扫描可以快速识别源代码的缺陷,静态扫描的结果以扫描报告作为输出: 1、文件扫描的成本和文件大小相关,如果文件大小为N,则扫描成本为N个金币 2、扫描报告的缓存成本和文件大小无…

Android编译优化之混淆配置

Android编译优化之混淆配置 背景 为了使用java8及后续java新版本的特性,Google增加了一步编译过程—脱糖(desugaring),但这一步会导致更长的编译时间,这也是为什么Google会推出D8和R8编译器来优化编译速度。 什么是脱…

Docker Compose-简单安装与卸载教程

文章目录 Windows安装Linux安装PIP 安装Mac安装Linux下的卸载 Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启…

python对象方法 反射

前言 类实例化得到的对象可以直接调用类中定义的函数,并且可以将对象本身作为第一个参数,那么类能不能也能像对象一样使用类体中的函数而不需要传递第一个参数呢?如果我们使用别人封装好的类,如何判断这个类或者对象是否有某个属…