When Should You Use exec vs. match in JavaScript? A Clear Guide
This article explains the fundamental differences between JavaScript's exec and match methods, showing which belongs to RegExp or String, how the global "g" flag affects their behavior, and provides practical code examples to help you choose the right one.
1. Which Object Owns exec and match?
exec is a method of the RegExp class. match is a method of the String class.
Understanding the owning object makes it clear how to use each method.
Example:
/hello/.exec('hello world'); 'hello world'.match(/hello/);2. The Key Difference
In short, it’s about the g flag. exec always matches the first occurrence (the g flag does not affect it) and returns information about captured groups. match returns an array of all matches only when the regular expression includes the g flag.
When the g flag is present,
matchcan return multiple results, while
execstill returns only the first match.
Conversely, if the regular expression does not have the g flag,
matchbehaves like
execand returns a single match.
Example code (both functions return
["version2.1","version","2","1"]):
var str = "version2.1";
var re = /([a-z]+)(\d+)\.(\d+)/;
console.log(str.match(re));
console.log(re.exec(str));In summary, the differences are twofold: they belong to different classes, and their behavior depends on whether the regular expression uses the g flag.
Reference
http://www.cnblogs.com/xiehuiqi220/archive/2008/12/01/1327487.html
Tencent IMWeb Frontend Team
IMWeb Frontend Community gathering frontend development enthusiasts. Follow us for refined live courses by top experts, cutting‑edge technical posts, and to sharpen your frontend skills.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.