前言

正则表达式是一种用于描述字符串匹配模式的表达式,由普通字符(如字母、数字)和特殊字符(称为"元字符")组成的文本模式,这个模式可以用于

  • 检查字符串是否符合特定格式
  • 查找字符串中的特定内容
  • 替换字符串中的特定内容
  • 提取字符串中的特定部分

以下为正则表达式的详细介绍。


一.创建正则表达式

1.字面量创建

语法:

/正则表达式模式/修饰符(可选)

代码实例:

const regex = /abc/i  //匹配字符串abc时不区分大小写

特点:

  1. 使用两个斜杠 / 包裹正则表达式模式
  2. 修饰符直接跟在第二个斜杠后面
  3. 特殊字符转义使用单重转义(如 \d)

2.构造函数创建

语法:

const regex = new RegExp(‘pattern’, ‘flags’) //pattern为正则表达式模式,flags为修饰符。

代码实例:

const regex = new RegExp('abc', 'i') //匹配字符串abc时不区分大小写

特点:

  1. 使用 RegExp 构造函数创建
  2. 模式作为字符串传入(注意:特殊字符转义使用双重转义(如 \\d))
  3. 修饰符作为可选的第二个字符串参数

二.正则表达式模式

正则表达式模式分为普通字符和元字符。

1.普通字符

大多数字符仅能够描述本身,这些字符称为普通字符。例如所有的字母和数字。普通字符只能够匹配字符串中与它们相同的字符。

2.元字符(特殊字符)

元字符是一些具有特殊含义的字符,极大的提高了灵活性和强大的匹配功能。元字符又分为边界符,量词,字符类。

1.边界符

正则表达式中的边界符用来提示字符所处位置,主要有两个字符。

注意:如果^和$同时出现则为精确匹配,被匹配的字符串需与两字符包裹的字符串相同。

2.量词

量词用来设定某个模式出现的次数。

注意:量词写在某个表达式的后面,表示前一个表达式可以出现的次数。

3.字符类

1.使用[]匹配字符集合

  1. 被匹配的字符只要是字符集合里的任意一个字符就行。例如[abc]可以匹配字符a或b或c。
  2. []里面可以使用连字符 - 表示一个范围。例如[0-9]可以匹配0~9中任意一个数字。
  3. []里面可以连写。例如[a-zA-Z]可以匹配任意一个大写或小写的英文字母。
  4. []里面可以写取反符号 ^ 表示匹配除了字符集合以外的任一字符。例如[^a~z]匹配除了小写字母以外的任一字符。
  1. 使用 . 匹配除换行符外的任何单个字符
  1. \d 匹配数字,等价于 [0-9]
    \D 匹配非数字,等价于 [^0-9]
    \w 匹配单词字符(字母、数字、下划线),等价于 [A-Za-z0-9_]
    \W 匹配非单词字符
    \s 匹配空白字符(空格、制表符、换行符等)
    \S 匹配非空白字符

三.修饰符

修饰符用来约束正则执行的某些细节行为,比如是否区分大小写,是否支持多行匹配等。

  • g 全局匹配(查找所有匹配而非在第一个匹配后停止)
  • i 不区分大小写匹配
  • m 多行匹配
  • s 允许 . 匹配换行符
  • u 使用 Unicode 码点进行匹配
  • y 粘性匹配(仅从目标字符串的当前位置开始匹配)

注意:如果需要多个修饰符,直接连写就行。


四. 正则表达式方法

在JavaScript中,正则表达式也是对象。其中常用方法如下:

1.RegExp 对象方法

  1. test() - 测试字符串是否匹配正则表达式

代码实例:

const regex = /hello/
console.log(regex.test('hello world'))  // true
  1. exec() - 执行正则表达式匹配,返回匹配结果的数组或 null

代码实例:

const regex = /hello/
console.log(regex.exec('hello world'))  // ["hello", index: 0, input: "hello world"]

2.String 方法使用正则表达式

  1. match() - 返回匹配结果的数组

代码实例:

'hello world'.match(/hello/)  // ["hello", index: 0, input: "hello world"]
  1. search() - 返回匹配到的位置索引,未找到返回 -1

代码实例:

'hello world'.search(/world/)  // 6
  1. replace() - 替换匹配的子串

代码实例:

'hello world'.replace(/world/, 'JavaScript')  // "hello JavaScript"
  1. split() - 使用正则表达式分割字符串

代码实例:

'hello world'.split(/\s/); // ["hello", "world"]

posted on 2025-10-02 19:04  ycfenxi  阅读(10)  评论(0)    收藏  举报