frontendbr / forum

:beer: Portando discussões feitas em grupos (Facebook, Google Groups, Slack, Disqus) para o GitHub Discussions
MIT License
4.25k stars 232 forks source link

Regex CNPJ #1261

Closed romulo2735 closed 4 years ago

romulo2735 commented 5 years ago

Saudade de pertubar vocês no forúm, então estou aqui. Queria saber como eu crio um REGEX, no caso de CNPJ, que não aceite números repetidos, exemplo: 11.111.111/1111-11 entre outras combinações.

Eu tenho esse REGEX, que funciona bem para o cenário atual. /^\d{2}\.\d{3}\.\d{3}\/\d{4}\\-\d{2}$/.

PS: isso é para um sistema com Laravel e uso esse REGEX atual dentro da request. 'cnpj' => 'required|unique:companies|min:18|max:18|regex:/^\d{2}\.\d{3}\.\d{3}\/\d{4}\\-\d{2}$/',

luizbills commented 5 years ago

Mais fácil você validar o CNPJ com matemática. Para o CNPJ e o CPF, existe um cálculo que você faz para determinar se é um CNPJ/CPF válido. Só pesquisar "como validar CNPJ" no google que você encontra algum tópico explicando.

lucasfcosta commented 5 years ago

Eu escrevi isso aqui há um tempo atrás sobre RegEx, talvez seja útil: https://www.lucasfcosta.com/2016/12/17/Regular-Expressions-in-JavaScript-Part-One.html https://www.lucasfcosta.com/2016/12/25/Regular-Expressions-in-JavaScript-Part-Two.html

dtfialho commented 5 years ago

@romulosousa27 como o @luizbills disse, é mais fácil validar ele com o cálculo mesmo, tanto para cpf quanto para cnpj você pode implementar um algoritmo pra verificar se ele é válido ou não. Dá uma olhada nesses links aqui.

https://www.geradorcnpj.com/algoritmo_do_cnpj.htm https://www.geradorcnpj.com/script-validar-cnpj-php.htm

romulo2735 commented 5 years ago

Beleza, vou da uma olhada! Valeu.

Sergioamjr commented 5 years ago

Não sei se é do seu interesse, mas eu uso essa lib pra verificar se é um CPF ou CNPJ válido, https://github.com/brazilian-utils/brazilian-utils/blob/master/README.md