JSFiddle - React, Tailwind, and code Playground
by tonytlwu
HTML
<div id="results"></div>
JavaScript
function repl(value) {
var mediaFilesRegExp = /\/v1\/media\/files\/([0-9]+)\/contents(\/[A-z0-9'%-_\.]+)?\??/g;
return value.replace(mediaFilesRegExp, function(url) {
var authToken = 'eu-12345-67890';
var existingToken = url.match(/auth_token=([A-z0-9-]+)/);
if (existingToken) {
return url.replace(existingToken[1], authToken);
}
return url + '?auth_token=' + authToken + '&';
});
}
function replFixed(value) {
var mediaFilesRegExp = /\/v1\/media\/files\/([0-9]+)\/contents(\/[A-z0-9'%-_\.\ ]+)?\??/g;
return value.replace(mediaFilesRegExp, function(url) {
var authToken = 'eu-12345-67890';
var existingToken = url.match(/auth_token=([A-z0-9-]+)/);
if (existingToken) {
return url.replace(existingToken[1], authToken);
}
return url + '?auth_token=' + authToken + '&';
});
}
document.querySelector('#results').innerHTML += repl('https://api.fliplet.com/v1/media/files/99999/contents/foo bar.wav');
document.querySelector('#results').innerHTML += '<br>' + replFixed('https://api.fliplet.com/v1/media/files/99999/contents/foo bar.wav');