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');