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();
})();