Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Como criar máscara com expressão regular em um input

Qual melhor método ou linha de código para criar uma máscara, seja ela qual for, com regex em input? Ou se há uma boa lib para isso? Em react e etc...

2 respostas

Jessika, boa tarde!

Não existe um melhor método ou linha de código, depende do projeto e do que você quer fazer, além disso deve-se levar em consideração a experiência dos outros desenvolvedores.

A sugestão que deixamos é que, quanto mais fácil seja para você e sua equipe compreender, melhor.

Espero ter ajudado e bons estudos!

solução!

Aqui tem um exemplo de máscara com JavaScript e Regex, sem usar nenhuma biblioteca externa

<html>
<head>
<script type="text/javascript">

function mascara(o,f){
    v_obj=o
    v_fun=f
    setTimeout("execmascara()",1)
}
function execmascara(){
    v_obj.value=v_fun(v_obj.value)
}
function mtel(v){
    v=v.replace(/\D/g,""); //Remove tudo o que não é dígito
    v=v.replace(/^(\d{2})(\d)/g,"($1) $2"); //Coloca parênteses em volta dos dois primeiros dígitos
    v=v.replace(/(\d)(\d{4})$/,"$1-$2");    //Coloca hífen entre o quarto e o quinto dígitos
    return v;
}
function id( el ){
    return document.getElementById( el );
}
window.onload = function(){
    id('telefone').onkeyup = function(){
        mascara( this, mtel );
    }
}
</script>
</head>
<body>
    <input type="text" name="telefone" id="telefone" maxlength="15" />
</body>
</html>

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software