JavaScript exec正则匹配

JavaScript exec正则匹配教程

JavaScript 中,exec() 方法在一个指定 字符串 中执行一个搜索匹配,返回一个结果 数组null

JavaScript exec()函数详解

语法

regexObj.exec(str);

参数

参数 描述
str 要匹配 正则表达式 的字符串。

返回值

如果匹配成功,exec() 方法 返回 一个数组(包含额外的属性 index 和 input ,参见下方表格),并更新正则表达式对象的 lastIndex 属性。完全匹配成功的文本将作为返回数组的第一项,从第二项起,后续每项都对应正则表达式内捕获括号里匹配成功的文本。

如果匹配失败,exec() 方法返回 null,并将 lastIndex 重置为 0 。

说明

在设置了 global 或 sticky 标志位的情况下(如 /foo/g or /foo/y),JavaScript RegExp 对象是有状态的。他们会将上次成功匹配后的位置记录在 lastIndex 属性中。使用此特性,exec() 可用来对单个字符串中的多次匹配结果进行逐条的遍历(包括捕获到的匹配),而相比之下, String.prototype.match() 只会返回匹配到的结果。

如果你只是为了判断是否匹配(true 或 false),可以使用 RegExp.test() 方法,或者 String.search() 方法。

案例

正则查找字符串

使用 exec 函数,正则查找字符串

<!DOCTYPE html> <html> <head> <title>JavaScript exec函数</title> <script type="text/javascript"> console.log("嗨客网(www.haicoder.net)"); var re = /quick\s(brown).+?(jumps)/ig; var result = re.exec('The Quick Brown Fox Jumps Over The Lazy Dog'); console.log("result =", result); </script> </head> </html>

程序运行后,控制台输出如下:

08_javascript exec方法正则表达式.png

首先,我们定义了一个正则表达式的规则 re 变量,接着,我们使用 exec 函数进行在字符串中使用正则表达式匹配,匹配返回的结果是 result。

正则查找字符串

使用 exec 函数,正则查找字符串

<!DOCTYPE html> <html> <head> <title>JavaScript exec函数</title> <script type="text/javascript"> console.log("嗨客网(www.haicoder.net)"); var myRe = /ab*/g; var str = 'abbcdefabh'; var myArray; while ((myArray = myRe.exec(str)) !== null) { var msg = 'Found ' + myArray[0] + '. '; msg += 'Next match starts at ' + myRe.lastIndex; console.log("Msg =", msg); } </script> </head> </html>

程序运行后,控制台输出如下:

09_javascript exec方法正则表达式.png

我们使用了 while循环 加上 exec 函数,实现了匹配字符串中所有的符合模式的字符串。

JavaScript exec正则匹配总结

在 JavaScript 中,exec() 方法在一个指定字符串中执行一个搜索匹配,返回一个结果数组或 null。