JSFiddle - React, Tailwind, and code Playground

by insin

JavaScript

var escapeRE = /[-[\]{}()*+?.,\\^$|#\s]/g

function replaceMultiple(s, terms, replacements) {
  if (terms.length != replacements.length) {
    throw new Error('Unequal number of terms and replacements')
  }

  var reParts = []
    , lookup = {}

  for (var i = 0, l = terms.length; i < l; i++) {
    lookup[terms[i]] = replacements[i]
    reParts.push(terms[i].replace(escapeRE, '\\$&'))
  }

  var re = new RegExp(reParts.join('|'), 'g')
  return s.replace(re, function(m) {return lookup[m] })
}

document.body.innerHTML = replaceMultiple(['á','é','í','ó','ú'].join('wtf'), ['á','é','í','ó','ú'], ['a','e','i','o','u'])