JSFiddle - React, Tailwind, and code Playground
HTML
<input type="text" id="txtTelefone2">
JavaScript
$("#txtTelefone2").bind('input propertychange', function (e) {
var numeros = this.value.replace(/[\s()-]*/g, '').split('');
if (numeros.length > 12) {
this.value = this.value.slice(0,-1);
return false;
}
var posicaoHifen = numeros.length == 12 ? 8 : 7;
var formatado = '';
for (var i = 0; i < numeros.length; i++) {
if (i == 0) formatado += '(';
if (i == 2) formatado += ')';
if (i == posicaoHifen) formatado += '-';
formatado += numeros[i];
}
this.value = formatado;
});