【发布时间】:2015-03-01 10:32:42
【问题描述】:
我需要澄清一下 JavaScript 中的 match Vs exec; here有人这么说
“带有全局正则表达式的 exec 应该在循环中使用” 但首先正如您在我的示例中看到的那样,情况并非如此;在我的示例中,带有全局正则表达式的 exec 正在返回数组中的所有匹配项!其次,他们说对于 String.match 它返回所有匹配项而无需循环!但是在我的示例中又没有发生这种情况,它只是返回输入字符串?我是否误解/做错了什么?
var myString = "[22].[44].[33].";
var myRegexp = /.*\[(\d*)*\].*\[(\d*)*\].*\[(\d*)*\].*/g;
var execResult = myRegexp.exec(myString);
console.log(execResult.length);
console.log(execResult[1]);// returns 22 and execResult has all of my matches from index 1 to the length of array
var matchResult = myString.match(myRegexp);
console.log(matchResult.length);
console.log(matchResult);// returns just myString which is "[22].[44].[33]."! Why is that?
【问题讨论】:
标签: javascript regex