`

js正则表达式中test,match,exec方法比较

 
阅读更多
js正则表达式中test,exec,match方法的区别说明
test
test 返回 Boolean,查找对应的字符串中是否存在模式。
var str = "1a1b1c";
var reg = new RegExp("1.", "");
alert(reg.test(str)); // true

exec
exec 查找并返回当前的匹配结果,并以数组的形式返回。
var str = "1a1b1c";
var reg = new RegExp("1.", "");
var arr = reg.exec(str);
如果不存在模式,则 arr 为 null,否则 arr 总是一个长度为 1 的数组,其值就是当前匹配项。arr 还有三个属性:index 当前匹配项的位置;lastIndex 当前匹配项结束的位置(index + 当前匹配项的长度);input 如上示例中 input 就是 str。

exec 方法受参数 g 的影响。若指定了 g,则下次调用 exec 时,会从上个匹配的 lastIndex 开始查找。
var str = "1a1b1c";
var reg = new RegExp("1.", "");
alert(reg.exec(str)[0]);
alert(reg.exec(str)[0]);
上述两个输出都是 1a。现在再看看指定参数 g:
var str = "1a1b1c";
var reg = new RegExp("1.", "g");
alert(reg.exec(str)[0]);
alert(reg.exec(str)[0]);
上述第一个输出 1a,第二个输出 1b。

match
match 是 String 对象的一个方法。
var str = "1a1b1c";
var reg = new RegExp("1.", "");
alert(str.match(reg));
match 这个方法有点像 exec,但:exec 是 RegExp 对象的方法;math 是 String 对象的方法。二者还有一个不同点,就是对参数 g 的解释。
如果指定了参数 g,那么 match 一次返回所有的结果。
var str = "1a1b1c";
var reg = new RegExp("1.", "g");
alert(str.match(reg));
//alert(str.match(reg)); // 此句同上句的结果是一样的
此结果为一个数组,有三个元素,分别是:1a、1b、1c。

JavaScript中经常用到正则表达式, 而正则表达式中经常用到Match和Test这两个函数,当然还有Exec. 这里以代码实例来区分它们之间的不同吧.
Match Example
复制代码 代码如下:

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 Example
复制代码 代码如下:

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

Exc Example
复制代码 代码如下:

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 />");
}
OUTPUT
---------------------------------
A    1
B   2
C   3
D   4
E   5
a   27
b   28
c   29
d   30
e   31

Another   Exc Example
复制代码 代码如下:

var regexp = /ab*/g;
var str = "abbcdefabh";
var rs;
while ((rs = regexp.exec(str)) != null)
{
    document.write(rs);
    document.write(regexp.lastIndex);
    document.write("<br />");
}
OUTPUT
---------------------------------
abb   3
ab     9
分享到:
评论

相关推荐

    js正则表达式中test,exec,match方法的区别说明

    在JavaScript中,正则表达式提供了多种方法来处理字符串中的模式匹配,包括`test`、`exec`和`match`。这些方法各自有着不同的特点和使用场景,下面将详细阐述它们的区别。 1. `test()`方法: `test()`方法用于检测...

    javascript正则表达式详解

    JavaScript提供了正则表达式的API,包括test、exec、search、match、replace等,每个都有不同的功能和用法。例如,exec方法可以循环匹配字符串,而test方法可以检查字符串是否符合正则表达式。修饰符g、i和m分别用于...

    精通 JS正则表达式

    - `exec()` 方法:用于查找字符串中与正则表达式模式相匹配的第一个实例,并返回一个包含匹配结果的数组。 - `compile()` 方法:用于重新编译正则表达式的模式,以便更快地执行。 此外,正则表达式对象还有一系列...

    javascript正则表达式学习笔记

    JavaScript中的正则表达式(Regular Expression)是一种强大的文本处理工具,用于匹配、查找、替换以及提取字符串中的模式。在Web开发中,它被广泛应用于数据验证、文本搜索和替换等场景。这篇学习笔记将深入探讨...

    JS常用正则表达式及其使用方法

    JavaScript中的正则表达式是进行字符串处理的重要工具,它们用于匹配、查找、替换或验证文本。在JS中,正则表达式可以静态定义,也可以动态创建。以下是一些常用的正则表达式及其使用方法。 1. **非负整数(正整数+...

    js正则表达式(例子).rar

    JavaScript中的正则表达式(Regular Expression)是一种强大的文本处理工具,用于匹配字符串模式。在JavaScript中,正则表达式主要用于字符串的搜索、替换和分割等操作。RegExp对象是JavaScript中的正则表达式核心,...

    正则表达式.rar || 正则表达式.rar

    2. JavaScript:JavaScript的全局对象`RegExp`提供了正则表达式功能,`test()`、`exec()`、`match()`、`replace()`等方法广泛应用于前端开发。 3. Java:Java中的`java.util.regex`包提供正则表达式支持,`Pattern`...

    javaScript正则表达式讲解用ppt

    JavaScript中的正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配、搜索、替换等操作。在JavaScript中,正则表达式被广泛应用于数据验证、文本处理和字符串操作等方面。 1. **正则表达式概念** - ...

    JS正则表达式大全【5】.txt

    根据提供的文件信息,我们可以深入探讨JavaScript中的正则表达式的使用方法和特性。下面将详细介绍正则表达式的概念、构造函数、属性以及方法等关键知识点。 ### 正则表达式概念 正则表达式(Regular Expression)...

    头歌教学实践平台 Web前端开发基础 JavaScript学习手册十:正则表达式

    在JavaScript中,正则表达式(Regular Expression)是一种强大的文本处理工具,用于执行模式匹配和字符串操作。本篇教程将深入探讨JavaScript中的正则表达式,帮助你理解和掌握这一核心概念。 一、正则表达式基础 ...

    JS正则表达式中文教程

    除了正则表达式对象提供的方法外,JavaScript中的String对象也提供了一些与正则表达式相关的常用方法: - `match()`: 找到一个或多个正则表达式的匹配。 - `replace()`: 替换与正则表达式匹配的子串。 - `search()`...

    各类正则表达式详细手册

    JavaScript还提供了test()、exec()、match()、replace()和split()等方法来操作正则表达式。 3. C#字符串和正则表达式: C#的System.Text.RegularExpressions命名空间提供了Regex类,用于处理正则表达式。创建正则...

    HTML+JS 编写的正则表达式测试工具

    在 JavaScript 中,`RegExp` 对象用于创建正则表达式,`exec()` 或 `match()` 方法用于执行匹配操作。 2. **JavaScript 正则相关方法**: - `test()`: 检查字符串是否包含符合正则表达式模式的文本,返回布尔值。 ...

    js正则表达式资料

    9. **正则表达式对象的方法**:`test()`用于检测字符串中是否存在匹配项,`exec()`返回匹配的结果并更新正则对象的位置。 10. **表单验证**:在Web开发中,正则表达式常用于表单验证,如邮箱格式验证`/^\w+@[a-zA-Z...

Global site tag (gtag.js) - Google Analytics