I have a string that looks like this:
const string = 'test_string%name=peter&age=18&foo=bar&lol=loli_copter';
I want to write a regex to get name and the age from this string and their values.
const result = 'name=peter&age=18;
I have tried the following but with no luck:
const result = string.match(/(?<=name\s+).*?(?=\s+age)/gs);
Can anyone help or point me in the right direction?
We can use string match here along with a regex pattern which targets the name and age keys, along with their RHS values.
var string = 'test_string%name=peter&age=18&foo=bar&lol=loli_copter';
var parts = string.match(/\b(?:name|age)=[^&]+/g);
var output = parts.join('&');
console.log(output);
You could just match "any characters except &" for name and "any number of digits" for age. e.g.
name=([^&]+)&age=(\d+)
const string = 'test_string%name=peter&age=18&foo=bar&lol=loli_copter';
const data = string.match(/name=([^&]+)&age=(\d+)/);
console.log(data[1], data[2]) // peter 18
const string = 'test_string%name=peter&age=18&foo=bar&lol=loli_copter';
const name = string.match(/name=([^&]*)/)[1];
const age = string.match(/age=([^&]*)/)[1];
console.log(name, age)
Output:
peter 18