Javascript regex not returning match Code Answer

Hello Developer, Hope you guys are doing great. Today at Tutorial Guruji Official website, we are sharing the answer of Javascript regex not returning match without wasting too much if your time.

The question is published on by Tutorial Guruji team.

I have a simple regex in which I’m trying to extract the leading value including the brackets. But for some reason it returns the entire string every time.

Sample string [1] My well-being if it includes [####] i want to then be able to get the contents of the match results so i can get [4] as a result.

const arr = [
  'I am not valid',
  '[1] My well-being',
  '[1] I conversation about',
  '[3] I role within',
  '[3] I members in the company',
  '[3]I priorities',
  '[3]How other teams',
  '[4] I within a team',
  '[4] I am a peer',
  '[4] I am a label',
  '[4] I am a label'
]

const regex = /^([d+])(.*)/img;
for (let index = 0; index < arr.length; index++) {
  const name = arr[index];
  const match = name.match(regex);
  console.log(match)
}

Answer

It’s because of your use of the g flag.

To quote the documentation:

  • If the g flag is used, all results matching the complete regular expression will be returned, but capturing groups will not.
  • if the g flag is not used, only the first complete match and its related capturing groups are returned. In this case, the returned item will have additional properties as described below.

You can fix this by simply removing g from your regular expression, then name.match() will return capturing groups as well.

We are here to answer your question about Javascript regex not returning match - If you find the proper solution, please don't forgot to share this with your team members.

Related Posts

Tutorial Guruji