Regex para somente números

Use /^\d+$/ para verificar se a string inteira contém apenas dígitos. Todos os exemplos abaixo foram testados com esse padrão, e você pode abri-los no Testador de Regex com os exemplos já carregados.

Atualizado em

EntradaResultado
0✓ Corresponde
123456✓ Corresponde
007✓ Corresponde
12a✗ Não corresponde
1.5✗ Não corresponde
 42✗ Não corresponde
-3✗ Não corresponde

Como o padrão funciona

ParteSignificado
^Início da string
\d+Um ou mais dígitos de 0 a 9
$Fim da string

Exemplos de código

JavaScript

const re = /^\d+$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'\d+', value))

PHP

preg_match('/^\d+$/', $value) === 1;

Observações e limitações

Use ^\d*$ para também aceitar uma string vazia. Em JavaScript, \d corresponde apenas a dígitos ASCII; no Python 3, ele também corresponde a dígitos de outros sistemas de escrita (como ٣), a menos que você passe re.ASCII.

Perguntas frequentes

Qual é a regex para somente números?
/^\d+$/ — ela corresponde à string inteira. Veja a tabela acima para entender o que cada parte faz.
Quais exemplos correspondem?
Dos exemplos testados, estes correspondem: 0, 123456, 007. Os outros não correspondem.
Como testo essa regex?
Clique em “Abrir no Testador de Regex” — o padrão, as flags e o texto de exemplo são carregados automaticamente, e as correspondências são destacadas conforme você edita.