`

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方法的区别说明

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

    正则表达式中test、exec、match的区别介绍及括号的用法

    test、exec、match的简单区别 1、test test 返回 Boolean,查找对应的字符串中是否存在模式。 var str = “1a1b1c”; var reg = new RegExp(“1.”, “”); alert&#40;reg.test(str&#41;); // true 2、exec exec ...

    全面解析JS字符串和正则表达式中的match、replace、exec等函数

    正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。 正则表达式由于不经常使用,所以容易经常忘记,...

    深入理解JS正则表达式—分组

    之前写了一篇关于正则新手入门的文章,本以为对正则表达式相对比较了解 但是今天我又遇到了一个坑,可能是自己不够细心的原因吧,今天就着重和大家分享一下javascript正则表达式中的分组。如果你对JS正则表达式不够...

    正则表达式

    在JavaScript中,正则表达式是由一个RegExp对象表示的.当然,可以使用一个RegExp()构造函数来创建RegExp对象, 也可以用JavaScript 1.2中的新添加的一个特殊语法来创建RegExp对象.就像字符串直接量被定义为包含在引号...

    javascript正则表达式中分组详解

    之前写了一篇关于正则新手入门的文章,本以为对正则表达式相对比较了解 但是今天我又遇到了一个坑,可能是自己不够细心的原因吧,今天就着重和大家分享一下javascript正则表达式中的分组。如果你对JS正则表达式不够...

    JavaScript正则表达式小结(test|match|search|replace|split|exec)|angluo-javascript-172930.pdf

    主要介绍了JavaScript正则表达式小结(test|match|search|replace|split|exec)的相关资料,非常不错,具有参考借鉴价值,需要的朋友参考下吧

    js的正则test,match,exec详细解析

    正则表达式gi我刚开始也看不懂,从网上找到后看到了,现在分享给大家正在表达式的通项: /pattern/flags 即(/模式/标记 )构造器函数方法使用方法如下:new RegExp(“pattern”[, “flags”])即new RegExp(“模式”[,...

    Javascript正则表达式验证账号、手机号、电话和邮箱的合法性

    在 JavaScript中,正则表达式也是对象。这些模式被用于 RegExp 的 exec 和 test 方法, 以及 String 的 match、replace、search 和 split 方法。本章介绍 JavaScript正则表达式。 1、验证帐号是否合法 验证规则:字母...

    js正则表达式

    声明javascript 正则表达式 var reCat = new RegExp("cat"); 你也可以 var reCat = /cat/; //Perl 风格 (推荐) 2 学习最常用的 test exec match search replace split 6个方法 1) test 检查指定的字符串...

    js正则函数match、exec、test、search、replace、split使用介绍集合

    match 方法 使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回。 stringObj.match(rgExp) 参数 stringObj 必选项。对其进行查找的 String 对象或字符串文字。 rgExp 必选项。为包含正则表达式...

    JS正则中的match与exec使用说明

    match() 方法将检索目标字符串,以找到一个或多个与 正则表达式regexp 匹配的文本。match()有两种情况: &lt;!–[if !supportLists]–&gt;1、 &lt;!–[endif]–&gt;如果 regexp 具有标志 g,则 match() 方法将执行全局检索...

    js-sandbox-14:正则表达式-评估函数

    在JavaScript中,正则表达式也是对象。 这些模式与RegExp的exec和test方法以及String的match , matchAll , replace , search和split方法一起使用。 本章介绍JavaScript正则表达式。 exec exec&#40;&#41;方法...

    java-packagename-regex:Java 包名称的正则表达式。 参考 [Java 命名包](http

    java-包名-正则表达式 Java 包名的正则表达式。 使用安装 npm i java-packagename-regex --save 用法 var packageNameRe = require ( 'java-packagename-regex' ) ; var match = packageNameRe ( ) . exec &#40; '...

    JS正则表达式获取分组内容的方法详解

    支持多次匹配的方式: 代码如下:var testStr = “now test001 test002”; var re = /test(\d+)/ig;...正则表达式对象的属性及方法: 预定义的正则表达式拥有有以下静态属性:input, multiline, lastMatch, lastParen

    浅谈正则表达式 实例入门

    很长时间没看 正则表达式了,碰巧今天用到,... //Perl 风格 (推荐) 2 学习最常用的 test exec match search replace split 6个方法 1) test 检查指定的字符串是否存在 代码如下: var data = “123123”; var

    js正则表达式常用函数详解(续)

    之前一篇已经带领大家认识了一下正则表达式常用函数最基本的功能及...本文再带领大家一起应用正则表达式,深入学习正则表达式中常用的方法及对象,例如:test、exec、match、replace、search等等,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics