JavaScript正则表达式入门:创建、方法与标志详解

作者:青柠时间:2026-10-29 16:49:38浏览:546

本文系统介绍JavaScript中正则表达式的创建方式、核心方法及应用技巧。内容涵盖字面量与构造函数的区别,详解exec、test、match、search、replace和split六个方法的语法与返回值差异,并解析g、i等标志对匹配结果的影响,帮助开发者掌握正则在字符串处理中的实际应用。

JavaScript正则表达式入门

JavaScript中正则表达式的学习:

为了方便调试,可以使用在线正则工具。下文所有示例代码均可在CodePen平台查看。

创建正则表达式

1. 创建正则表达式


var re = /ab+c/; //方式一 正则表达式字面量

var re = new RegExp("ab+c"); //方式二 RegExp对象的构造函

1)正则表达式字面量在脚本加载时即被编译。如果正则表达式是固定常量,采用这种方式能获得更优的性能。

2)使用构造函数RegExp(),支持在运行时编译正则表达式。当正则模式可能动态变化,或模式来源不确定(如用户输入)时,构造函数方式更为合适。

特殊字符与语法

2. 正则表达式中的特殊字符

\ ^ $ * + ? . (x) (?:x) x(?=y) x(?!y) x|y {n}

{n,m} [xyz] [^xyz] [\b] \b \B \cX \d \D \f \n \r

\s \S \t \v \w \W \n \0 \xhh \uhhhh

正则表达式常用方法

3. 正则表达式中的方法

主要包含6个方法:exec、test、match、search、replace和split。

其中,exec和test由RegExp对象调用;而match、search、replace和split由String对象调用。

exec:

该方法用于在指定字符串中执行搜索匹配操作,返回一个数组或null。语法如下:regexObj.exec(str)

示例代码:

var re = /quick\s(brown).+?(jumps)/ig; var result = re.exec('The Quick Brown Fox Jumps Over The Lazy Dog'); 返回结果:

JavaScript正则表达式入门

test:

用于测试字符串是否匹配正则表达式,返回布尔值true或false。语法如下:regexObj.test(str)

match:

在字符串中执行查找匹配操作,返回一个数组;若未匹配到则返回null。

与exec的区别在于调用方式:match由字符串调用,而exec由RegExp对象调用。

此外,若表达式包含“g”标志,将返回所有匹配字符串的数组;若无“g”标志,则行为与exec相同。以下示例包含“g”标志。语法如下:str.match(regexp)

示例代码:


var re = /quick\s(brown).+?(jumps)/ig;
var result = re.exec('The Quick Brown Fox Jumps Over The Lazy Dog');

返回结果:

JavaScript正则表达式入门

search:

用于在字符串中测试匹配,返回匹配子串的起始索引;若未找到则返回-1。语法如下:str.search(regexp)

例如,若对前述示例调用search,返回的数值为4。

replace:

用于在字符串中执行查找匹配,并使用替换字符串替换匹配到的子串。语法如下:str.replace(regexp|substr,newSubStr|function[,flags])


var re = /(\w+)\s(\w+)/;
var str = "John Smith";
var result = str.replace(re, "$2, $1");

返回的结果将是:“Smith, John”

split:

使用正则表达式或固定字符串分隔字符串,并将子字符串存储到数组中。语法如下:str.split([separator[,limit]])

limit参数用于限制分割后数组的元素个数。以下示例中,一个表达式包含括号,另一个不包含,返回数据存在差异。

示例代码:


var re = /(\d)/;
var result = 'Hello 1 word. Sentence number 2.'.split(re);
console.log(result);
var re = /\d/;
var result = 'Hello 1 word. Sentence number 2.'.split(re);
console.log(result);

返回结果:

JavaScript正则表达式入门

执行信息与标志

4. 正则表达式执行返回信息


var myRe = new RegExp("d(b+)d", "g");
var myArray = myRe.exec("cdbbdbsbz");
console.log(myArray);

代码中返回的结果如下:

JavaScript正则表达式入门

JavaScript正则表达式入门

5. 正则表达式标志

JavaScript正则表达式入门


var re = /\w+\s/g;//表达式一
var re = new RegExp("\\w+\\s", "g");//表达式二
var str = "fee fi fo fum";
var myArray = str.match(re);
console.log(myArray);

表达式一和表达式二返回的结果相同,均为下方的数组:

JavaScript正则表达式入门

以上就是本文的全部内容,希望对大家的学习有所帮助。

作者最新文章