js-brasil
js-brasil copied to clipboard
Telefone
Os números de telefone no Brasil segue uma padronização, eu fiz um regex que valida todos eles
https://gist.github.com/ejkun/ddda855a10ce4bf70022a4d91e3b8402
Talvez dê pra usar para validação, já que não está validando 0800
O que diz @mariohmol?
top eihn??
o lance é.. quando faço validacao.. retiro todos os caracteres especiais.. pq as vezes o cara grava so o numero.. alguns usam - outros nao.. dai pra universalizar.. deixo so os numeros e valido.. se conseguir fazer algo assim acho q tem um bom fit
hj ta bem simples.. olha so.. https://github.com/mariohmol/js-brasil/blob/master/src/validate.ts#L478
Então, eu fiz exatamente isso ontem, pq precisava dessa solução.
const phoneRegex = /^(([0-9]{2})((7[0|7|8|9])|([2|3|4|5][0-9])|([7|8|9][0-9]{2}))[0-9]{2}[0-9]{4})|(0[8|3|5|9]00[0-9]{3}[0-9]{4})$/;
filé!! entao além do validate.. tem q fazer um create pra ele.. q é usado no fakerBr https://github.com/mariohmol/js-brasil/blob/master/src/faker.ts#L376
Essa função tem q gerar um telefone valido..
essa chamada makeGenericFaker(MASKS['telefone'])()
faz um numero ja no padrao basico .. dai ele fixa um DDD valido... se o faker continuar passando nesse validate massa..
alem disso seria bom ter alguns tests cases q valida esse regex.. tipo uns casos que sao invalidos e casos validos https://github.com/mariohmol/js-brasil/blob/master/test/validate.ts#L257
Podemos fazer um faker de regex
http://fent.github.io/randexp.js/#r=%5E%28%28%5B0-9%5D%7B2%7D%29%28%287%5B0%7C7%7C8%7C9%5D%29%7C%28%5B2%7C3%7C4%7C5%5D%5B0-9%5D%29%7C%28%5B7%7C8%7C9%5D%5B0-9%5D%7B2%7D%29%29%5B0-9%5D%7B2%7D%5B0-9%5D%7B4%7D%29%7C%280%5B8%7C3%7C5%7C9%5D00%5B0-9%5D%7B3%7D%5B0-9%5D%7B4%7D%29%24&i
entao.. é o q esa funcao faz makeGenericFaker
de uma forma mais simples claro... a ideia é nao incluir mais libs pra nao crescer demais o js final
@mariohmol, como eu faria para utilizar no mesmo campo o validador de telefone e celular?
aproveitando.. porque o telefone e o celular tem a mesma máscara?
sendo que celular seria assim: (XX) XXXXX - XXXX
e telefone residencial assim: (XX) XXXX - XXXX
como fazer para usar a máscara assim (XX) XXXX - XXXX
@rafahsborges .. acho q o campo validar telefone serve pra fixo e celular... nao? Saca estes teste: https://github.com/mariohmol/js-brasil/blob/master/test/validate.ts#L403
deu algum problem c vc?
@andrejm7 acho q hj em dia praticamente todos os estados implementaram o 9 digito pra telefone fixo, nao?
@mariohmol não.. aqui em SC ainda é 8 dígitos para fixo.. tipo assim: (XX) XXXX - XXXX
Mas aqui, ele valida true com fixo usando 8 digitos... em qual caso vc esta tendo problema? https://github.com/mariohmol/js-brasil/blob/master/test/validate.ts#L413
Pelo menos na versão que eu estava utilizando, quando queria ou tentava algo assim (61) 9 3...que seria um telefone fixo, ele bloqueia e só permite celular mesmo, que seria com 8 ou 9.
c fala no mask ou no validate?
adicionei mais testes usando seu DDD e funcionou..... saca so https://github.com/mariohmol/js-brasil/blob/master/test/mask.ts#L214
eu ainda tenho dificuldades de usar a sua máscara para celular ou para telefone residencial..
exemplo.. (48) 3535 1017 (48) 99936 2911
como usar o mesmo tipo de validação no mesmo campo?
@andrejm7 c ta rodando com angular?
pq assim.. usando esse repo, https://github.com/mariohmol/ng-brazil
se eu clono e dou um npm run start ele me abre o demo e o telefone funciona pra ambos bumeros
@rafahsborges agora temos o .celular q força celular.. o problema de tel que força 8 e 9 pq depende de localidade
ola, se o problema persistir, favor reabrir