Handling Forms & User Input
What input handling technique does this demonstrate?
const masks = {
phone: value => value.replace(/\D/g, '')
.replace(/^(\d{3})(\d{3})(\d{4})$/, '($1) $2-$3'),
zipcode: value => value.replace(/\D/g, '')
.replace(/^(\d{5})(\d{0,4})$/, '$1-$2')
};
form.addEventListener('input', e => {
const mask = e.target.dataset.mask;
if (mask && masks[mask]) {
const value = e.target.value;
const pos = e.target.selectionStart;
const newValue = masks[mask](value);
if (newValue !== value) {
e.target.value = newValue;
e.target.setSelectionRange(pos, pos);
}
}
});