js正则表达test,exec和match的区别

2024-12-01 11:48:19
推荐回答(2个)
回答1:

test是RegExp的方法,参数是字符串,返回值是boolean类型。 match是String的方法,参数是正则表达式,返回值是数组。

回答2:

js正则表达式中test用于验证某个输入的字符串,是否符合相关的要求,
比如下面的js程序验证由数字组成的字符串是否符合ABBABB的规律.

 var str="344344";
 var regex=/^(\d)(\d)\2\1\2\2$/;
 var result=regex.test(str);
 alert(result);

运行结果
true

js正则表达式中exec用于当正则表达式中有捕获组时,捕获其中匹配的字符串.
比如下面的js程序,取from后面的第一个单词

 var str='from dog like from book cat.....';
 var regex=/from\s+\b(.+?)\b/g;
 var result;
 while((result=regex.exec(str))!=null){
  alert(result[1]);
 }

运行结果
dog
book

js正则表达式中match用于匹配原字符串中的多个匹配项
比如下面的js程序,匹配类似a=1|b=0|c=0|的字符串

 var str='a=1|b=0|c=0|asfoiqa=1|b=0|c=0asofa=1|b=0|safioqwa=1|b=0asfiiqa=1|asifoqwfja=1';
 var regex=/([A-Za-z]=[0-9]\|)+\|?/g;
 var result=str.match(regex);
 for(var i=0;i  alert(result[i]);

运行结果
a=1|b=0|c=0|
a=1|b=0|c=0
a=1|b=0|
a=1|b=0
a=1|
a=1

另外,test和exec是RegExp对象的函数,match是String对象的函数.