NewIntroducing QODEX QA Services — platform-powered QA for API-driven teams.Learn more →
Validador Regex de Números em Javascript

Validador Regex de Números em Javascript

Use o Validador Regex de Números em JavaScript para verificar padrões de inteiros, decimais e números com sinal ou formatados. Seja para construir formulários ou ferramentas financeiras, o regex é uma forma eficaz de garantir a precisão dos dados. Você também pode explorar nosso JavaScript Regex Tester para depurar padrões em tempo real, ou combiná-lo com ferramentas como o Gerador de Token para autenticação numérica e o Base64 Decoder para decodificar valores antes da validação.

Validador Regex de Números em Javascript - Documentação

O que é Regex de Números?

Em JavaScript, regex (expressões regulares) são frequentemente usadas para validar e corresponder entradas numéricas, como números inteiros, decimais e valores formatados como moeda. Isso é especialmente útil em formulários, cálculos financeiros e validação de entrada onde a estrutura dos dados numéricos importa.

O regex em JavaScript fornece padrões concisos para distinguir números válidos e rejeitar qualquer coisa inesperada, como letras ou pontuação malformada.

Padrões Regex para Validação de Números

  1. Validação de Inteiros

    Valida números inteiros sem símbolos ou pontos decimais.

    const regex = /^\d+$/;

    Corresponde: "123", "2024"

    Não corresponde: "12.3", "-100"

  2. Validação de Número Decimal

    Valida números com decimais opcionais.

    const regex = /^\d+\.\d+$/;

    Corresponde: "3.14", "99.999"

    Não corresponde: "100", "abc"

  3. Validação de Número com Sinal

    Permite sinal negativo ou positivo opcional.

    const regex = /^[+-]?\d+(\.\d+)?$/;

    Corresponde: "-45", "+99.99", "0"

    Não corresponde: "--12", "100+"

  4. Números Formatados com Vírgulas

    Corresponde a números como 1,000 ou 12,345,678.

    const regex = /^\d{1,3}(,\d{3})*$/;

    Corresponde: "1,000", "100,000"

    Não corresponde: "1000", "1,,000"

Como Validar Números em JavaScript

Use a classe RegExp embutida ou literais regex com métodos como .test() ou .match():

const number = "12345";
const pattern = /^\d+$/;

console.log(pattern.test(number)); // true

O método test() executa uma busca por correspondência entre a expressão regular e uma string especificada. Ele retorna true se o padrão corresponder à string; caso contrário, retorna false. Isso o torna uma forma eficiente de verificar rapidamente se a entrada do usuário atende a um formato específico.

O método retorna um valor booleano:

  • true se o padrão corresponder à string

  • false se não corresponder

Isso difere do método search(), que retorna o índice da correspondência (ou -1 se não houver correspondência).

Em resumo:

  • Use test() para verificar simplesmente se uma correspondência existe e obter um resultado true ou false.

  • Se você precisar saber onde na string a correspondência ocorre, use search().

Você pode testar o seu regex personalizado usando nosso JavaScript Regex Tester interativo.

Como test() se Comporta com Regex Global e Strings Diferentes?

Quando você usa o método test() com um regex que tem a flag global (g), há uma peculiaridade: o regex mantém uma propriedade lastIndex entre testes repetidos. Isso significa que se você chamar test() várias vezes, mesmo em strings diferentes, a busca continua de onde parou por último.

  • Se test() encontrar uma correspondência, lastIndex avança para a posição logo após a correspondência.

  • Enquanto você continuar obtendo true, o regex não é reiniciado para novas strings.

  • Mas assim que test() falha (retorna false), lastIndex é redefinido para 0.

Por que isso importa?

Se você estiver validando vários números ou campos em um formulário usando o mesmo objeto regex global e não redefinir lastIndex manualmente, falsos negativos inesperados podem surgir.

Exemplo

const regex = /\d+/g;

regex.test("123"); // true (lastIndex now at 3) regex.test("456"); // true (lastIndex now at 3) regex.test("789"); // true (lastIndex now at 3) regex.test("abc"); // false (lastIndex resets to 0)

Boa prática: se você estiver usando o mesmo regex global para strings diferentes, chame regex.lastIndex = 0 antes de cada novo teste, ou evite a flag global a menos que você realmente precise dela.

Quando Usar test(), exec() ou match()

Ao validar entradas numéricas ou detectar se uma string corresponde a um padrão, use .test() no seu regex. Para mais detalhes, como extrair partes correspondentes ou capturar grupos, use .exec(). O método .match() é chamado na própria string e funciona de forma semelhante ao .exec().

const regex = /^\d+$/;
console.log(regex.test("12345")); // true

Em resumo:

  • Use .test() para validação simples de sim/não.

  • Use .exec() ou .match() quando precisar de detalhes de correspondência ou valores extraídos.

Metacaracteres Utilizados

  • ^ : Início da string

  • $ : Fim da string

  • \d : Qualquer dígito [0-9]

  • + : Um ou mais do anterior

  • * : Zero ou mais do anterior

  • ? : Opcional (zero ou um)

  • . : Ponto escapado para corresponder decimal

  • [,] : Vírgula literal

  • () : Agrupamento

  • [] : Classe de caracteres

Exemplos

Exemplo 1: Validando um Inteiro

const input = "250";
const pattern = /^\d+$/;

console.log(pattern.test(input)); // true

Construa seus próprios padrões usando o JavaScript Regex Tester.

Exemplo 2: Validando um Número Decimal

const input = "3.1415";
const pattern = /^\d+.\d+$/;

console.log(pattern.test(input)); // true

Você pode combinar isso com o Gerador de Token para gerar números seguros automaticamente.

Exemplo 3: Detectando Números com e sem Sinal

const input = "-0.99";
const pattern = /^[+-]?\d+(.\d+)?$/;

console.log(pattern.test(input)); // true

Use em combinação com o JavaScript Regex Tester para depuração rápida.

Casos de Uso

  • Validação de Formulários: Use regex para garantir que os usuários insiram números válidos em campos como idade, quantidade e orçamento.

  • Aplicações Financeiras: Valide a precisão decimal em transações e preços.

  • Limpeza de Dados: Filtre entradas inválidas antes de importar para ferramentas de análise.

  • Sistemas de Autenticação: Use regex para processar OTPs numéricos e tokens de login gerados via Gerador de Token.

Combine com Estas Ferramentas

Frequently Asked Questions

O regex consegue detectar números positivos e negativos?

Sim, usando ^[+-]?\d+(\.\d+)?$ permite tanto inteiros com sinal quanto decimais.

Como valido um número que pode ou não ter decimais?

Use ^\d+(\.\d+)?$, que aceita números inteiros e decimais.

Devo validar valores de moeda usando regex?

O regex pode validar o formato (ex.: vírgulas e decimais), mas considere lógica adicional para símbolos de moeda e limites.

O \d corresponde apenas a dígitos?

Sim, corresponde a [0-9]. É equivalente, mas mais conciso.

O regex JavaScript consegue validar números formatados como "1,000"?

Sim, use um padrão como /^\d{1,3}(,\d{3})*$/ para corresponder formatos separados por vírgula.

Teste suas APIs hoje!

Escreva em português simples, o Qodex transforma em testes seguros e prontos para executar.