5

Possible Duplicate:
How can I match multiple occurrences with a regex in JavaScript similar to PHP's preg_match_all()?

In Javascript, is it possible to find the starting and ending indices of all substrings within a string that match a regular expression?

Function signature:

function getMatches(theString, theRegex){ //return the starting and ending indices of match of theRegex inside theString //a 2D array should be returned } 

For example:

getMatches("cats and rats", /(c|r)ats/); 

should return the array [[0, 3], [9, 12]], which represents the starting and ending indices of "cats" and "rats" within the string.

0

2 Answers 2

12

Use match to find all substrings that match the regex.

> "cats and rats".match(/(c|r)ats/g) > ["cats", "rats"] 

Now you can use indexOf and length to find the start/end indices.

Sign up to request clarification or add additional context in comments.

Comments

2
function getMatches(theString, theRegex){ return theString.match(theRegex).map(function(el) { var index = theString.indexOf(el); return [index, index + el.length - 1]; }); } getMatches("cats and rats", /(c|r)ats/g); // need to use `g` 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.