const regex = /([^&=]+)=([^&]*)/g;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('([^&=]+)=([^&]*)', 'g')
const str = `id_token=eyJhbGciOiJSUzI1NiIsImtpZCI6IjZCN0FDQzUyMDMwNUJGREI0RjcyNTJEQUVCMjE3N0NDMDkxRkFBRTEiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJhM3JNVWdNRnY5dFBjbExhNnlGM3pBa2ZxdUUifQ.eyJuYmYiOjE0NzE5NzQ0MzEsImV4cCI6MTQ3MTk3NDczMSwiaXNzIjoiaHR0cDovLzE2OS4yNTQuODAuODA6NDUwMCIsImF1ZCI6ImlvbmljQ2xpZW50Iiwibm9uY2UiOiI4NTUwNDU4MzEyMzMxODgyIiwiaWF0IjoxNDcxOTc0NDMxLCJhdF9oYXNoIjoiSW5HYWpBdWU4LUVvS1ZkNzNTUXNlUSIsInNpZCI6IjQzMzRjYjRkOTViZjkzMTIzOGYxNGIxNTFhNzRlYTRhIiwic3ViIjoiMDAwOTc5NzYiLCJhdXRoX3RpbWUiOjE0NzE5NzAzOTUsImlkcCI6ImxvY2FsIn0.P2v5KVaI5ZM7uIVD4AWsaP-YqQWXygjEjRwf7lWvzyNjRY8tRU2zZWqpvFN6VypjQfLkZjPKbpcEGGMSADUN8NMLI8KO8yBhYKlqU2CrceHHEvQRpeguzth6riqL9RikFmANtWSvkNmbrjXllI1T5-HK1nh4O_jpaHOeTRcHF12L6AAYhDIwCRAm8gwis4t1duzAFZ-A8-S2sAUT89ezCEfE5NGdczaiN_3y5VKkjiJqNdoFLGe8E7ejvpZHS77Rmp_R5nl0a_iJzg4q3M2R9Nbwpduah6X76Q7u-z3bqJsAqw-Ngsak7LJj4_aNJZDbT4vyCO9qyPVI5LUrIa6MtQ&access_token=eyJhbGciOiJSUzI1NiIsImtpZCI6IjZCN0FDQzUyMDMwNUJGREI0RjcyNTJEQUVCMjE3N0NDMDkxRkFBRTEiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJhM3JNVWdNRnY5dFBjbExhNnlGM3pBa2ZxdUUifQ.eyJuYmYiOjE0NzE5NzQ0MzEsImV4cCI6MTQ3MTk3ODAzMSwiaXNzIjoiaHR0cDovLzE2OS4yNTQuODAuODA6NDUwMCIsImF1ZCI6Imh0dHA6Ly8xNjkuMjU0LjgwLjgwOjQ1MDAvcmVzb3VyY2VzIiwiY2xpZW50X2lkIjoiaW9uaWNDbGllbnQiLCJzY29wZSI6WyJvcGVuaWQiLCJlbWFpbCIsImFwaTEiXSwic3ViIjoiMDAwOTc5NzYiLCJhdXRoX3RpbWUiOjE0NzE5NzAzOTUsImlkcCI6ImxvY2FsIiwicm9sZSI6ImN1c3RvbWVyIn0.LNVEWtOmUHGXgIamHzJJQ2-x7RiREOb9JTFEAPKMiyzGwpn7VIwtnCgmmXZlgkN-7gSDj5T7OmhyCQVvnTfK57UvLotzT-egLLjQI3WAdOQanXxo5hKpAPO1H0neLsHmW9Oa4DFK3Ft9-F7aovsA2gxwZ6axnP1_NCn9vg4jWmhU3gwfq_DsjUqhUgr73qvPa_mfENIPcS0p5v6pG9xu6PE1ECHw7Zg__9JeX0oQ7Eg3rzH6X8SwUBhOU0-51svCziFMj42hi3fZfbiEtzzvJq999___YA4PdJ0F-esnWo8LFWmceJViOQgLwzL7sfxv07sgsL3kBouxu9R0_zcvBA&token_type=Bearer&expires_in=3600&scope=openid%20email%20api1&state=3482997620966838&session_state=cy5gU2jp6Y3ip-si4Erap3XrL6DvMZtHTBmvzeuEi5Q.8cd75f271a72fb7b0920bddd2df2f171"`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions