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.5Regex 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"); // falseDepois 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.
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