CNO
Cadastro Nacional de Obras, o cadastro de obras de construção civil na Receita Federal (substituiu o CEI para elas, com a mesma numeração).
Validar
- JavaScript, biblioteca
- Python, biblioteca
- Go, biblioteca1 caso falha
- Ruby, biblioteca2 casos falham
- Rust, biblioteca1 caso falha
- .NET, biblioteca2 casos falham
- Erlang, biblioteca
Valida um CNO. O CNO substituiu o CEI para obras de construção civil e manteve a numeração dele.
- Mesmas regras de
cei.isValid. - Um número só é lido se for um inteiro seguro não negativo. Número negativo, fracionário, não finito ou inseguro é inválido.
- Nenhuma fonte oficial publica a regra do dígito verificador. Só as 12 posições e a manutenção do número do CEI no CNO (Manual de Orientação do eSocial S-1.3, item 9.1) são oficiais. A IN RFB 2.061/2021 não traz dígito verificador, e o eSocial só verifica se o número existe na base da Receita. A regra vem de implementações de referência de terceiros, conferidas com os dados abertos do CNO e com o exemplo do SERPRO,
000000336854. - Um número perde os zeros à esquerda, então um valor que começa com
0só é aceito como string:"000000336854"é válido e336854não é.
| Parâmetro | Tipo | Obrigatório |
|---|---|---|
value | string | number | sim |
| retorna | boolean |
Valida um número de CNO (Cadastro Nacional de Obras). O CNO substituiu o CEI para obras e manteve a mesma numeração.
- Mesmas regras de
isValidCei, inclusive os zeros à esquerda de um número.
import { isValidCno } from '@brazilian-utils/brazilian-utils';
isValidCno('11.084.01680/62'); // true
isValidCno('111130137368'); // true
isValidCno(401800097960); // true
isValidCno(-401800097960); // false (não é um inteiro seguro não negativo)
isValidCno('110840168063'); // false (dígito verificador inválido)
isValidCno('000000000000'); // false (dígitos repetidos)Fonte: página do CNO da Receita Federal, SERPRO, cadastro CNO, MOS do eSocial S-1.3, item 9.1 e a base de dados aberta do CNO.
Código: brazilian-utils/javascriptTeste com JavaScript isValidCno
Casos de teste compartilhados (22) e o resultado em cada biblioteca cno.isValid
Formatar
- JavaScript, biblioteca
- Python, biblioteca
- Go, biblioteca
- Ruby, biblioteca7 casos falham
- Rust, biblioteca
- .NET, biblioteca1 caso falha
- Erlang, biblioteca
Formata um CNO com a máscara 00.000.00000/00 (a numeração do CEI).
- Mesmas regras de
cei.format: a máscara é aplicada até onde os dígitos vão, e os dígitos além do 12º são descartados.options.padprimeiro completa com zeros à esquerda até 12 dígitos. - Um número só é lido se for um inteiro seguro não negativo. Número negativo, fracionário, não finito ou inseguro retorna uma string vazia (a 2.4.0 lia os dígitos de qualquer número, descartando sinal e ponto decimal).
options.padnum valor sem dígitos ("","---",null) continua retornando uma string vazia. Até a 2.4.0""e"---"retornavam a máscara inteira de zeros.
| Parâmetro | Tipo | Obrigatório |
|---|---|---|
value | string | number | sim |
options | FormatCnoOptions | não |
options.pad | boolean | não |
| retorna | string |
Formata um número de CNO (Cadastro Nacional de Obras).
- Mesmas regras de
formatCei: a máscara00.000.00000/00, compademFormatCnoOptions.
import { formatCno } from '@brazilian-utils/brazilian-utils';
formatCno('111130137368'); // 11.113.01373/68
formatCno(401800097960); // 40.180.00979/60
formatCno('979', { pad: true }); // 00.000.00009/79Teste com JavaScript formatCno
Casos de teste compartilhados (20) e o resultado em cada biblioteca cno.format
Interpretar
- JavaScript, biblioteca
- Python, biblioteca
- Go, biblioteca
- Ruby, biblioteca2 casos falham
- Rust, biblioteca
- .NET, biblioteca
- Erlang, biblioteca
Remove a formatação do CNO e mantém somente os dígitos, limitados a 12 dígitos.
- Um número só é lido se for um inteiro seguro não negativo. Número negativo, fracionário, não finito ou inseguro retorna uma string vazia (a 2.4.0 lia os dígitos de qualquer número, descartando sinal e ponto decimal).
| Parâmetro | Tipo | Obrigatório |
|---|---|---|
value | string | number | sim |
| retorna | string |
Remove a formatação do CNO (Cadastro Nacional de Obras), mantém apenas os dígitos e limita o resultado a 12 dígitos, a numeração que o CNO herdou do CEI.
import { parseCno } from '@brazilian-utils/brazilian-utils';
parseCno('11.113.01373/68'); // '111130137368'Teste com JavaScript parseCno
Casos de teste compartilhados (9) e o resultado em cada biblioteca cno.parse
Fontes oficiais
Atualizado em
