js match函数注意

match函数

String.prototype.match

参数

regexp

返回

返回包含所有匹配的数组,如果匹配失败返回Null。

数组第一项是整段字符串的匹配,第二项至以后都是捕获匹配。

注意

需要注意的是:

If the regular expression includes the g flag, the method returns an Array containing all matched substrings rather than match objects. Captured groups are not returned. If there were no matches, the method returns null.

如果match函数加了/g标志位,返回的数组里只包含整段字符串的匹配。

比如

`1234567890`.match(/(\d{3})+$/)         //["234567890", "890", index: 1, input: "1234567890"]
`1234567890`.match(/(\d{3})+$/g)       //["234567890"]

解决方案

使用exec函数:

var myRe = /(\d{3})+$/g;
var str = '1234567890';
var myArray;var n = 0;
while ((myArray = myRe.exec(str))&&n<10) {
  console.log(myArray);n++;        //["234567890", "890", index: 1, input: "1234567890"];
}

转载于:https://www.cnblogs.com/dh-dh/p/7125967.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值