Fundamentos

Regex para números: inteiros, decimais e somente dígitos

“Validar um número” pode significar aceitar apenas dígitos, inteiros com sinal, valores decimais ou uma quantidade específica de casas. Escolha o padrão de acordo com a regra real.

Antes de começar: teste cada padrão com exemplos que devem passar e exemplos que devem falhar.

Regex para somente números (dígitos)

Quando o valor inteiro deve conter apenas algarismos de 0 a 9, use âncoras para garantir que não exista nenhum caractere antes ou depois.

Regex: ^\d+$
Aceita: 12345
Rejeita: 12A45, 12.45, -123

Se o campo exige uma quantidade fixa de dígitos, substitua + por uma repetição. Exemplo: ^\d{6}$ aceita exatamente seis dígitos.

Regex para números inteiros

Para aceitar inteiros positivos e negativos, um sinal opcional pode aparecer antes dos dígitos.

Regex: ^[+-]?\d+$
Aceita: 42, -42, +42
Rejeita: 4.2, 42px

Se o sinal de + não for necessário, uma alternativa mais simples é ^-?\d+$.

Somente números positivos

Regex pode validar a forma, mas “positivo” é uma regra numérica. Se zero não for permitido, a aplicação deve converter o valor e verificar se ele é maior que zero. Para apenas impedir um sinal negativo na forma textual, ^\+?\d+$ pode ser suficiente em entradas simples.

Regex para números decimais

Para valores com ponto decimal opcional, use um grupo não capturante. O padrão abaixo aceita inteiros e decimais com uma ou mais casas.

Regex: ^[+-]?\d+(?:\.\d+)?$
Aceita: 10, -10, 10.5, +3.1415
Rejeita: .5, 10., 3,14

Em interfaces brasileiras, muitas pessoas digitam vírgula decimal. Se essa for a regra do seu formulário, você pode aceitar ponto ou vírgula com ^[+-]?\d+(?:[.,]\d+)?$ e normalizar o valor antes de salvar.

Limitar quantidade de dígitos e casas decimais

Quantificadores são úteis quando a quantidade faz parte da regra. Por exemplo, um valor com até seis dígitos inteiros e exatamente duas casas decimais:

Regex: ^\d{1,6}\.\d{2}$
Aceita: 10.00, 999999.99
Rejeita: 1000000.00, 10.5

Regex de formato não é intervalo numérico

Evite usar uma Regex enorme para regras como “valor entre 18 e 120”. Primeiro valide a forma; depois converta para número e aplique min, max ou a regra de negócio. Isso deixa o código mais legível e menos sujeito a erros.

Regex para números em JavaScript

Em JavaScript, test() é suficiente quando você precisa apenas saber se o texto segue o padrão.

const integerRegex = /^[+-]?\d+$/;

integerRegex.test("-42"); // true
integerRegex.test("42px"); // false

Depois da validação, use Number(), parseInt() ou parseFloat() conforme a necessidade da aplicação.

Erros comuns ao validar números com Regex

Os erros mais comuns são esquecer as âncoras ^ e $, tratar vírgula e ponto sem definir uma regra de normalização e tentar validar limites matemáticos apenas com Regex. Também teste entradas vazias, espaços, sinais duplicados e caracteres misturados.

Próximo passo: teste de verdade

Use o Playground para experimentar a expressão e depois pratique no jogo com feedback de falsos positivos e falsos negativos.

Praticar no jogoTestar no Playground

Pratique Regex para números

Agora que você viu os padrões, resolva os exercícios 01, 02, 06, 16 e 17 sem olhar a resposta. Eles foram organizados para treinar somente dígitos, tamanho, inteiros e decimais.

Praticar exercícios de números

Continue aprendendo

← Voltar ao hub