php 正则匹配 exec,js匹配字符串match()和exec()方法中正则表达式全局标识g的正确用法...

下面几个例子,主要说明js匹配字符串match()和exec()方法带与不带全局标识g时输出结果的异同,需要注意的是exec() 带全局标识g时正则匹配输出结果最详细,但也略显麻烦。至于实际运用中选用下面哪种方法,取决于实际需求。

1.1 匹配字符match()方法,不带全局标识g:

var str="at 1 b 2 c";

var patt=/([a-zA-Z])+/;

console.log(str.match(patt)); //返回数组中,第0个元素:str中符合整个正则表达式的首个匹配到的子字符串,其余的元素依次存放的是与正则表达式的子表达式(括号部分)匹配的子字符串

提示:你可以先修改部分代码再运行。

输出结果:

["at", "t"]

1.2 匹配字符match()方法,带全局标识g:

var str="at 1 b 2 c";

var patt=/([a-zA-Z])+/g;

console.log(str.match(patt)); //只输出str中符合整个正则表达式的所有匹配到的子字符串

提示:你可以先修改部分代码再运行。

输出结果:

["at", "b", "c"]

2.1 正则exec()方法,不带全局标识g:

var str="at 1 b 2 c";

var patt=/([a-zA-Z])+/;

console.log(patt.exec(str)); //不带全局标识g时,跟match()方法不带全局标识输出结果一样

提示:你可以先修改部分代码再运行。

输出结果:

["at", "t"]

2.2 正则exec()方法,带全局标识g:

var str="at 1 b 2 c";

var patt=/([a-zA-Z])+/g;

var resultArr=[];

while((result=patt.exec(str))!=null){

console.log("lastIndex: "+patt.lastIndex);

resultArr.push(result);

//resultArr.splice(resultArr.length,0,result);

}

console.log(JSON.stringify(resultArr)); //可以看成执行完“match()方法,不带全局标识g”后,再往后匹配,然后将结果依次拼成一数组输出

提示:你可以先修改部分代码再运行。

输出结果:

[["at","t"],["b","b"],["c","c"]]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值