JSFiddle - React, Tailwind, and code Playground
JavaScript
hide(document.getElementById('values'));
var values = document.getElementById('values').innerHTML.split(/\r\n|\r|\n/g);
var part1Total = 0;
var part2Total = 0;
values.forEach(function(c) {
var CharsInData = 0;
var CharsToAdd = 0;
var IgnoreNext = 0;
c.split("").forEach(function(letter, i) {
if (IgnoreNext == 0) {
if (letter == '\\') {
if (c[i + 1] == '\\') {
CharsInData += 1;
CharsToAdd += 2;
IgnoreNext = 1;
}
if (c[i + 1] == '\"') {
CharsInData += 1;
CharsToAdd += 2;
IgnoreNext = 1;
}
if (c[i + 1] == 'x') {
CharsInData += 3;
CharsToAdd += 1;
IgnoreNext = 3;
}
}
} else {
IgnoreNext--;
}
});
part1Total += c.length - (c.length - CharsInData - 2);
part2Total += CharsToAdd + 4;
});
document.getElementById('results').innerHTML = "Part 1: " + part1Total +
"<br/>Part 2: " + part2Total;
function hide (elements) {
elements = elements.length ? elements : [elements];
for (var index = 0; index < elements.length; index++) {
elements[index].style.display = 'none';
}
}