RegEx in Node/Javascript - how to get pattern match bounds?

ControlAltDel picture ControlAltDel · Jun 26, 2012 · Viewed 19.6k times · Source

Currently, I'm using regex in Javascript / Node via find() and that works for finding the beginning of the pattern. But I'd also like to be able to find out where the pattern ends. Is that possible?

Answer

Markus Jarderot picture Markus Jarderot · Jun 26, 2012

If you use the RegExp.exec() method, you can get the information you need.

var pattern = /\d+\.?\d*|\.\d+/;
var match = pattern.exec("the number is 7.5!");

var start = match.index;
var text = match[0];
var end = start + text.length;

/\d+\.?\d*|\.\d+/ is equivalent to new RegExp("\\d+\\.?|\\.\\d+"). The literal syntax saves some backslashes.