Last active
July 17, 2024 20:48
-
-
Save gabrielpeixoto/474c5f231206018211bd4b765f7f79cb to your computer and use it in GitHub Desktop.
Validar numeração CNJ de processos judiciais
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Validar numeração CNJ de processos judiciais | |
* | |
* @param {String} numero | |
* @returns {boolean} | |
*/ | |
function validarNumeroUnicoProcesso(numero) { | |
const bcmod = (x, y) => | |
{ | |
const take = 5; | |
let mod = ''; | |
do | |
{ | |
let a = parseInt(mod + x.substr(0, take)); | |
x = x.substr(take); | |
mod = a % y; | |
} | |
while (x.length); | |
return mod; | |
}; | |
// remove todos os pontos e traços | |
const numeroProcesso = numero.replace(/[.-]/g, '') | |
if (numeroProcesso.length < 14 || isNaN(numeroProcesso)) { | |
return false; | |
} | |
const digitoVerificadorExtraido = parseInt(numeroProcesso.substr(-13, 2)); | |
const vara = numeroProcesso.substr(-4, 4); // (4) vara originária do processo | |
const tribunal = numeroProcesso.substr(-6, 2); // (2) tribunal | |
const ramo = numeroProcesso.substr(-7, 1); // (1) ramo da justiça | |
const anoInicio = numeroProcesso.substr(-11, 4); // (4) ano de inicio do processo | |
const tamanho = numeroProcesso.length - 13; | |
const numeroSequencial = numeroProcesso.substr(0, tamanho).padStart(7, '0'); // (7) numero sequencial dado pela vara ou juizo de origem | |
const digitoVerificadorCalculado = 98 - bcmod((numeroSequencial + anoInicio + ramo + tribunal + vara + '00'), '97'); | |
return digitoVerificadorExtraido === digitoVerificadorCalculado; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Convert to typescript: public static int ExtrairNumeroVaraNumeroCnj(string numeroCnj)
{
if (string.IsNullOrEmpty(numeroCnj))
return 0;