Kebab-ToCamel
by Sam Fereday
HTML
<div class="container">
<div class="fifty">
<p>
In:
</p>
<div contenteditable="true" id="in">...</div>
</div>
<div class="fifty">
<p>
Out:
</p>
<div id="out">...</div>
</div>
</div>
SCSS
html,
body {
padding: 0;
margin: 0;
background: #333;
font: 85%/1.4em arial;
}
* {
box-sizing: border-box;
}
.container {
padding: 1em 0.5em;
}
p {
padding: 0;
margin: 0 0 1em;
color: #fff;
}
#in, #out {
width: 100%;
min-height: 20em;
display: block;
padding: 1em;
font-size: 1.2em;
background: #555;
color: #fff;
border: 1px solid #ccc;
}
#out {
background: #444;
}
.fifty {
width: 50%;
float: left;
padding: 0 1em;
}
JavaScript
const convertToCamel = (str) => {
return str.replace(/-([a-z]|[A-Z])/g, function(g, i) {
return g[1].toUpperCase();
});
}
const textAreaIn = document.getElementById('in');
const textAreaOut = document.getElementById('out');
textAreaIn.addEventListener('keyup', (e) => {
textAreaOut.innerText = convertToCamel(e.target.innerText.toLowerCase());
});