JavaScript正则表达式RegExp详解:test、match与exec方法对比

作者:木棉

时间:2026-10-27

浏览:501

本文详细解析JavaScript中正则表达式的构造方式及gi、i、m等标记含义,重点对比test、match和exec三个核心方法的执行逻辑与返回值差异。通过代码示例说明test返回布尔值、match返回匹配数组、exec支持循环获取匹配详情及lastIndex属性的工作机制,帮助开发者根据需求选择合适的方法。

文章目录

正则表达式基础语法与标记说明

正则表达式的基本语法结构为 /pattern/flags,即“模式/标记”。此外,还可以通过构造函数创建正则对象,语法为 new RegExp("pattern"[, "flags"])。其中 pattern 代表正则表达式的文本内容,flags 为可选参数,用于指定匹配行为。常见的 flags 包括:g 表示全局匹配(global match),i 表示忽略大小写(ignore case),gi 则同时启用全局匹配和忽略大小写。

/ab+c/gi

正则表达式中 /i、/g、/ig、/gi 和 /m 标记的区别与具体含义

/i 表示忽略大小写;/g 表示查找全文中所有出现的匹配字符;/m 表示进行多行查找;/gi 表示全文查找且忽略大小写;/ig 同样表示全文查找且忽略大小写。

test、match与exec方法对比

test、match、exec 方法的区别

在 JavaScript 开发中,正则表达式的使用非常频繁,其中 Match、Test 和 Exec 是三个最常用的方法。下面通过具体的代码实例来区分它们各自的功能与返回值差异。

Match方法示例

Match 方法示例

代码如下:

var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var regexp = /[A-E]/gi;
var rs = str.match(regexp);
//rs= Array('A', 'B', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e');

Test方法示例

Test 方法示例


代码如下:

var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var regexp = /[A-E]/gi;
var rs = regexp.test(str);
// rs = true; boolean

Exec方法示例

Exec 方法示例


代码如下:

var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var regexp = /[A-E]/gi;
var rs;
while ((rs = regexp.exec(str)) != null)
{
document.write(rs);
document.write(regexp.lastIndex);
document.write("<br />");
}

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章