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:

  1. Usando Expressão Regular (RegEx)
  2. Usando a Função split() e some()
  3. 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 retorna true 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 usando isNaN(). O isNaN() retorna false para números e true 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() retorna null se não houver correspondências, por isso comparamos o resultado com null.

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:

  1. O usuário insere uma string no campo de texto.

  2. Ao clicar no botão “Validar”, o JavaScript captura o valor inserido e chama a função contemNumeros().

  3. 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.

QUER SER UM PROGRAMADOR FULL-STACK E DOMINAR AS PRINCIPAIS TECNOLOGIAS DO MERCADO?

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:

CLIQUE AQUI E SAIBA MAIS

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

Tags:

Quer receber GRÁTIS o e-book "Como Formatar um Computador em 5 Minutos"?

Não enviamos spam. Seu e-mail está 100% seguro!

Sobre o Autor

Bene Silva Júnior
Bene Silva Júnior

Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *