Ao desenvolver uma aplicação web, pode ser necessário verificar se uma string contém números. Isso é muito útil, por exemplo, ao validar senhas, nomes de usuários ou entradas de formulário. Em JavaScript, há várias maneiras de realizar essa validação. Neste post, vamos aprender como validar se string contém números em JavaScript.
Métodos para verificar se uma string contém números
Em JavaScript, temos algumas abordagens para verificar se uma string contém números. Vamos explorar três métodos principais:
- Usando Expressão Regular (RegEx)
- Usando a Função
split()
esome()
- Usando a Função
match()
1. Usando expressão regular (RegEx)
A forma mais comum e eficiente de verificar se uma string contém números é utilizando expressões regulares. Com RegEx, podemos definir um padrão de busca que localiza qualquer número dentro da string.
Exemplo:
function contemNumeros(string) {
const regex = /\d/; // A expressão \d corresponde a qualquer dígito numérico
return regex.test(string); // Retorna true se encontrar números
}
console.log(contemNumeros("Senha123")); // true
console.log(contemNumeros("SomenteTexto")); // false
Explicação:
- A expressão regular
\d
corresponde a qualquer dígito numérico (0-9). - O método
test()
da expressão regular retornatrue
se a string contiver ao menos um número.
2. Usando split() e some()
Outra maneira de verificar se uma string contém números é dividir a string em caracteres e verificar se algum desses caracteres é um número. Podemos usar os métodos split()
para dividir a string e some()
para testar cada caractere.
Exemplo:
function contemNumeros(string) {
return string.split('').some(char => !isNaN(char) && char !== ' '); // Verifica se há algum número
}
console.log(contemNumeros("Senha123")); // true
console.log(contemNumeros("SomenteTexto")); // false
Explicação:
- O método
split('')
divide a string em um array de caracteres. - O método
some()
percorre o array e verifica se algum caractere é um número usandoisNaN()
. OisNaN()
retornafalse
para números etrue
para qualquer outro valor não numérico, então o uso de!isNaN(char)
verifica se o caractere não é “NaN” (ou seja, é um número). - Também excluímos espaços (
char !== ' '
) para evitar falsos positivos.
3. Usando match()
O método match()
em JavaScript pode ser usado para buscar números dentro de uma string com expressões regulares. Se a string contiver números, o método retornará um array com as correspondências. Caso contrário, retornará null
.
Exemplo:
function contemNumeros(string) {
return string.match(/\d+/) !== null; // Retorna true se encontrar números
}
console.log(contemNumeros("Senha123")); // true
console.log(contemNumeros("SomenteTexto")); // false
Explicação:
- A expressão regular
\d+
procura por uma ou mais ocorrências de dígitos. - O método
match()
retornanull
se não houver correspondências, por isso comparamos o resultado comnull
.
Validação prática com exemplo completo
Aqui está um exemplo de um campo de entrada onde o usuário insere uma string, e o JavaScript verifica se a string contém números:
HTML:
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Validação de Números em String</title>
</head>
<body>
<h1>Verificar se String Contém Números</h1>
<label for="inputString">Digite uma string:</label>
<input type="text" id="inputString" placeholder="Digite algo...">
<button onclick="validarString()">Validar</button>
<p id="resultado"></p>
<script src="script.js"></script>
</body>
</html>
JavaScript (script.js):
function contemNumeros(string) {
const regex = /\d/;
return regex.test(string);
}
function validarString() {
const input = document.getElementById('inputString').value;
const resultado = contemNumeros(input);
if (resultado) {
document.getElementById('resultado').innerText = "A string contém números!";
} else {
document.getElementById('resultado').innerText = "A string não contém números.";
}
}
Explicação:
- O usuário insere uma string no campo de texto.
- Ao clicar no botão “Validar”, o JavaScript captura o valor inserido e chama a função
contemNumeros()
. - Se a string contiver números, uma mensagem informando que há números na string será exibida. Caso contrário, uma mensagem indicará que não há números.
Outro exemplo prático
function validaNome(campo) {
//var regex = '[^a-zA-Z0-9]+'; //impede caracteres e números
//exceto números e caracteres especiais
var regex = /^[a-zA-ZéúíóáÉÚÍÓÁèùìòàçÇÈÙÌÒÀõãñÕÃÑêûîôâÊÛÎÔÂëÿüïöäËYÜÏÖÄ\-\ \s]+$/;
if(campo.match(regex)) {
//encontrou, então não passa na validação
return false;
} else { return true; } //encontrou caracteres especiais
}
Verifica se a string informada no campo contém números:
function isNumeric(str) {
var er = /^[0-9]+$/;
return (er.test(str));
}
Verificar se uma string contém números é uma tarefa simples em JavaScript e pode ser feita de várias maneiras, dependendo das necessidades da aplicação.
Neste post, vimos três abordagens: com expressões regulares (RegEx), usando split()
com some()
, e com o método match()
. Essas técnicas são amplamente usadas para validações de formulários e dados de entrada do usuário.
Aprenda através de projetos reais e aulas práticas. São 20 cursos completos + cursos bônus. Grupos privados exclusivos, atualizações constantes e lives semanais.
Python, PHP, Java Script, CSS, Node, Angular JS, MySQL, Photoshop, Flutter, AWS, Apache e muito mais!
CLIQUE NA IMAGEM ABAIXO E CONFIRA MAIS DETALHES:
Dúvidas ou sugestões sobre como validar se string contém números em JavaScript? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits
Quer receber GRÁTIS o e-book "Como Formatar um Computador em 5 Minutos"?
Sobre o Autor
0 Comentários