js test match exec三者区别

本文详细介绍了JavaScript中正则表达式的三种方法:test、exec 和 match 的使用方式及其区别。通过实例展示了如何利用这些方法进行字符串匹配和查找。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

js的正则表达式有test  exec match三种不同的方法 本博客主要参考其他博客及自己看书所得,

正则有两种表达方式,一种是字面量模式,另一种是使用RegExp的模式

test:

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

var str="catastrop";

var reg= new RegExp("cat","g");//(使用RegExp的模式)

var reg2=/cat/g;(字面量模式)

console.log(reg.test(str));//true

console.log(reg2.test(str));//true


exec

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

var str="catastrop";

var reg=new RegExp("cat","");

var getresult=reg.exec(str);

console.log(getresult);

如果不存在模式,则getresult为null,否则getresult是一个长度为1的数组,其值就是当前匹配项,返回结果:["cat", index: 0, input: "catastrop"]

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

前两个方法都是regexp的方法,而match是string的方法

var  string="catcat";

var reg=new RegExp("cat","");

console.log(string.match(reg));

如果指定了参数g,那么match一次返回所有结果

var  string="catcat";
var reg=new RegExp("cat","g");
console.log(string.match(reg));
console.log(string.match(reg));

返回结果:["cat", "cat"]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值