Ещё проще - можно взять готовое решение.
Как пример:
<label>Телефон:</label>
<input id="phone" type="text">
<script src="https://unpkg.com/imask"></script>
<script>
var element = document.querySelector('#phone');
var maskOptions = {
mask: '+7(000)000-00-00',
lazy: false
}
var mask = new IMask(element, maskOptions);
</script>
Вот доки на эту библиотечку:
https://unmanner.github.io/imaskjs/guide.html. В ней сразу несколько масок.