test() 函数是RegExp对象的方法,参数是字符串,返回值是boolean类型。
exec() 函数是RegExp对象的方法,参数是正则表达式,返回值是数组。
match ()函数是String对象的方法,参数是正则表达式,返回值是数组。
方法 | 描述 |
---|---|
test | 一个在字符串中测试是否匹配的RegExp方法,它返回true或false. |
exec | 一个在字符串中执行查找匹配的RegExp方法,它返回一个数组(未匹配到则返回null ;(指定g:exec下次调用 exec 时,会从上个匹配的 lastIndex 开始查找。) |
match | 一个在字符串中执行查找匹配的String方法,它返回一个数组或者在未匹配到时返回null; (指定g:match 一次返回所有的结果。) |
1、test
返回: Boolean,查找对应的字符串中是否存在模式;
var str = "1a1b1c";
var reg = new RegExp("1.", "");
console.log(reg.test(str)); // true
结果返回Boolean值,true;
2、exec
返回:数组, 查找并返回当前的匹配结果,并以数组的形式返回;如果不存在模式,则 arr 为 null,否则 arr 总是一个长度为 1 的数组,其值就是当前匹配项。
var str = "1a1b1c";
var reg = new RegExp("1.", "");
console.log(reg.exec(str)); // ['1a', index: 0, input: '1a', groups: undefined]
** arr 还有三个属性:**
- index 当前匹配项的位置;
- lastIndex 当前匹配项结束的位置(index + 当前匹配项的长度);
- input 如上示例中,input 就是 str。
参数 g的影响
exec 方法受参数 g 的影响:
不指定参数 g
指定参数 g
若指定了 g,则下次调用 exec 时,会从上个匹配的 lastIndex 开始查找。
3、match
match 是 String 对象的一个方法。
match 这个方法有点像 exec,但:exec 是 RegExp 对象的方法;math 是 String 对象的方法。
二者还有一个不同点,就是对参数 g 的解释。
参数 g的影响
不指定了参数 g
指定了参数 g
如果指定了参数 g,那么 match 一次返回所有的结果。