Skip to content

Instantly share code, notes, and snippets.

@ivarconr
Last active February 22, 2017 19:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save ivarconr/175f63e3ce9f815ff36dd9de6eb53889 to your computer and use it in GitHub Desktop.
Save ivarconr/175f63e3ce9f815ff36dd9de6eb53889 to your computer and use it in GitHub Desktop.
/**
* Given we have a regex with one more matching groups.
* The regex should capture those groups from an 'input'
* string and replace the matched values in an 'template'
* string.
*
* Example:
* regex: /([1-9]{8})/([1-9]{8})?/
* input string: '/some-magic/path/12122211/22112211'
* template string: 'http://someurl?adId=$1&adId=$2'
*
* Should produce following output:
* http://someurl?adId=12122211&adId=22112211
*
* My current implementation, kinda works, but would love
* to improve the string-template updater.
*/
const re = new RegExp('/([1-9]{8})/([1-9]{8})?');
const input = '/some-magic/path/12122211/22112211';
const template = 'http://someurl?adId=$1&adId=$2';
const match = re.exec(input);
let output = template;
if (match) {
for(let i=1; i<match.length; i++) {
if(match[i]) {
output = output.replace(`$${i}`, match[i])
}
}
}
console.log(output);
@ivarconr
Copy link
Author

Trygve almost there with template strings: https://gist.github.com/trygve-lie/4255138406b9b5969ce3c5da7a0711fb

@ivarconr
Copy link
Author

ivarconr commented Feb 22, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment