Home > Back-end >  how to extract url id from string with regex?
how to extract url id from string with regex?

Time:03-07

suppose that, i've this string:

google.com/:id/:category

how can i extract only id and category from this string?

i should use regex

this match doesn't work:

match(/\/:([a-zA-Z0-9]*)/g);

CodePudding user response:

You may try the following:

var url = "google.com/:id/:category";
var parts = url.match(/(?<=\/:)[a-zA-Z0-9] /g);
console.log(parts);

This approach uses the positive lookbehind (?<=\/:) to get around the problem of matching the unwanted leading /: portion. Instead, this leading marker is asserted but not matched in the version above.

CodePudding user response:

Well, capture groups are ignored in match with /g. You might go with matchAll like this:

const url = "google.com/:id/:category"
const info = [...url.matchAll(/\/:([a-zA-Z0-9]*)/g)].map(match => match[1])
console.log(info)

Credit: Better access to capturing groups (than String.prototype.match())

  • Related