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

test
test返回boolean,查找对应的字符串中是否存在模式

const phoneReg = /^[1][0-9]{10}$/;
 if (!phoneReg.test(value)) {
  return callback(new Error('请输入符合规范的手机号码'));
}

exec
exec 查找并返回当前的匹配结果,并以数组的形式返回。

var str = "1a1b1c";
var reg = new RegExp("1.", "");
var arr = reg.exec(str);

如果不存在模式,则arr为null,否则arr总是一个长度为1的数组,其值就是当前匹配项。arr还有三个属性:index为当前匹配项的位置;lastIndex当前匹配项结束的位置(index+档案匹配项的长度);input就是实例中的str。
exec 方法受参数 g 的影响。若指定了 g,则下次调用 exec 时,会从上个匹配的 lastIndex 开始查找。

match
match 是 String 对象的一个方法。
match有点像exec,但是exec是RegExp对象的方法;match是string对象的方法。
如果指定了参数 g,那么 match 一次返回所有的结果。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容