Regex para verificar se string tem apenas números com JavaScript

Neste artigo você vai aprender a como criar uma regex para verificar se string tem apenas números, isso tudo na linguagem JavaScript

Regex para verificar se string tem apenas números capa

Fala programador(a), beleza? Bora aprender mais sobre regex e JavaScript!

A regex para validação de strings que contém apenas números é bem simples

Podemos testar os textos com o método test, basta apenas a regex

Veja o código necessário e alguns testes:

const a = "Teste"
const b = "Teste1"
const c= "123"

const onlyNumbers = new RegExp('^[0-9]+$')

console.log(onlyNumbers.test(a)) // false
console.log(onlyNumbers.test(b)) // false
console.log(onlyNumbers.test(c)) // true
Formação Claude Code
Formação Recomendada

Formação Claude Code

Domine Claude Code do absoluto zero até o avançado

  • 120 aulas
  • 4 projetos
  • 9h 45min

Veja que somente a última string tem números e ela é validada como true

Ou seja, é o resultado que estamos esperando

As demais, com apenas texto ou com caracteres combinados, retornam falso

E dessa forma conseguimos validar se strings possuem apenas números ou não

Você pode colocar numa função também essa regex, para reaproveitamento de código

Conclusão

No artigo de hoje você viu como fazer uma regex para verificar se string tem apenas números

Utilizamos a classe RegExp para criar a expressão regular

E depois o método test para testar as strings que queremos verificar

Confira nossos cursos gratuitos no Youtube, com vídeos todos os dias! Se inscreva e ative o sininho para receber as notificações e aprender mais ainda sobre desenvolvimento web!

Veja também nosso catálogo de cursos na Udemy, todos com exercícios e projetos práticos, nas mais diversas tecnologias. O link acima contém um cupom de desconto para os curso

Nova seção curta:

Usando a regex como literal:

Dá pra fazer a mesma coisa sem o new RegExp, usando a regex direto entre barras

Muita gente prefere assim, fica mais enxuto

console.log(onlyNumbers.test("123")) // true console.log(onlyNumbers.test("12a3")) // false

Como prende do começo (^) ao fim ($), qualquer letra ou símbolo no meio já derruba pra false, que é exatamente o que a gente quer

Completar com o exemplo real:

Bora ver na prática? Assim tu reaproveita em qualquer lugar do projeto

function onlyNumbers(text) { }

console.log(onlyNumbers("123")) // true console.log(onlyNumbers("Teste1")) // false

Agora é só chamar onlyNumbers com a string que tu quer testar e receber true ou false de volta

Muito mais limpo do que repetir a regex toda hora

Título: E os casos que pegam a gente de surpresa?

Tem detalhe que derruba o teste e o pessoal se ferra sem entender o porquê

String vazia: "" retorna false, porque o + exige pelo menos um dígito. Se no teu caso a string vazia PODE ser válida, troca o + por *

Espaço no meio ou nas pontas: " 123" retorna false, o espaço não é dígito. Se precisar aceitar, dá um .trim() na string antes de testar

Número com vírgula ou ponto:

Negativo:

Tome cuidado com isso, é o tipo de coisa que passa batido e quebra a validação lá na frente

Título: Dá pra verificar sem regex?

Dá sim, e às vezes é até mais direto dependendo do que tu precisa

Uma forma comum é usar o Number junto do isNaN pra ver se a string vira número de verdade:

function isNumeric(text) { return text.trim() !== "" && !isNaN(Number(text)) }

Então a escolha depende do teu caso: se é pra aceitar SÓ dígito de 0 a 9, a regex é mais rígida e resolve. Se é pra validar ‘é um número’ no geral, o Number costuma servir melhor

Título: Perguntas frequentes

Como aceitar também números decimais?

Como validar apenas números mas permitir string vazia? O * significa ‘zero ou mais’, então "" também retorna true

Qual a diferença entre test e match aqui? O test devolve true ou false, perfeito pra validação. O match devolve o que casou (ou null), mais útil quando tu quer extrair o valor, não só checar

Pode, o \d é um atalho pra dígito e o padrão vira /^\d+$/. No dia a dia dá no mesmo pra números de 0 a 9

Leia também

Escrito por | Matheus Battisti

Matheus Battisti
Fundador da Hora de Codar

Programador apaixonado pelo mundo das tecnologias, sempre buscando em aprender e se aprofundar em linguagens, frameworks e o que mais for necessário para executar um bom trabalho. Agora tem uma nova missão que é de passar seu conhecimento adiante para formar novos programadores e especializar mais os que já são.

Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Blog | Mais populares