ES6: Replace string

Replace multiple instances of string, only if exist in a object.

by Porfirio Chavez

HTML

<p id="original"></p>
<hr />
<p id="replaced"></p>

CSS

body {
  font-family: sans-serif;
  background-color: #f6e58d;
}

Babel + JSX

const message = "Hello {@name} welcome, please validate your email {@email}. See {@notexist}";

const user = {
  name: "Jhon Doe",
  email: "[email protected]"
};

const replaceInfo = (str, data) => {
  return str.replace(
    /({@)([a-z]*)(})/gi,
    (inStr, p1, p2, p3, offset, fullStr) => data[p2] || data[p2.toLowerCase()] || inStr
  );
};

const init = () => {
  document.getElementById("original").innerHTML = message;

  document.getElementById("replaced").innerHTML = replaceInfo(message, user);
};

(function() {
  init();
})();