Verifique se uma string de input contém um número em javascript

Meu objective final é validar um campo de input. A input pode ser alfabética ou numérica.

Se não me engano, a pergunta requer “contém número”, não “é o número”. Assim:

function hasNumber(myString) { return /\d/.test(myString); } 

Você pode fazer isso usando o javascript. Não há necessidade de Jquery ou Regex

 function isNumeric(n) { return !isNaN(parseFloat(n)) && isFinite(n); } 

Enquanto implementa

 var val = $('yourinputelement').val(); if(isNumeric(val)) { alert('number'); } else { alert('not number'); } 

Atualização: Para verificar se uma string tem números, você pode usar expressões regulares para fazer isso

 var matches = val.match(/\d+/g); if (matches != null) { alert('number'); } 
 function validate(){ var re = /^[A-Za-z]+$/; if(re.test(document.getElementById("textboxID").value)) alert('Valid Name.'); else alert('Invalid Name.'); } 

Não é à prova de balas por qualquer meio, mas funcionou para os meus propósitos e talvez ajude alguém.

 var value = $('input').val(); if(parseInt(value)) { console.log(value+" is a number."); } else { console.log(value+" is NaN."); } 

Uma maneira de verificar isso é percorrer a string e retornar true (ou false dependendo do que você deseja) quando você atingir um número.

 function checkStringForNumbers(input){ let str = String(input); for( let i = 0; i < str.length; i++){ console.log(str.charAt(i)); if(!isNaN(str.charAt(i))){ //if the string is a number, do the following return true; } } } 

Você pode fazer isso usando o javascript. Não há necessidade de Jquery ou Regex

 function isNumeric(n) { if(!isNaN(n)) { return true } else { return false } } 

Usando expressões regulares com JavaScript . Uma expressão regular é uma cadeia de texto especial para descrever um padrão de pesquisa, que é escrito na forma de / pattern / modifiers, em que “padrão” é a expressão regular em si e “modificadores” são uma série de caracteres que indicam várias opções.
A class de caractere é o conceito de regex mais básico após uma correspondência literal. Isso faz com que uma pequena sequência de caracteres corresponda a um conjunto maior de caracteres. Por exemplo, [AZ] poderia representar o alfabeto maiúsculo e \d poderia significar qualquer dígito.

Do exemplo abaixo

  • contains_alphaNumeric «Verifica se a string contém ou letra ou número (ou) letra e número. O hífen (-) é ignorado .
  • onlyMixOfAlphaNumeric «Ele verifica se a string contém letras e números apenas de qualquer ordem de seqüência.

Exemplo:

 function matchExpression( str ) { var rgularExp = { contains_alphaNumeric : /^(?!-)(?!.*-)[A-Za-z0-9-]+(?< !-)$/, containsNumber : /\d+/, containsAlphabet : /[a-zA-Z]/, onlyLetters : /^[A-Za-z]+$/, onlyNumbers : /^[0-9]+$/, onlyMixOfAlphaNumeric : /^([0-9]+[a-zA-Z]+|[a-zA-Z]+[0-9]+)[0-9a-zA-Z]*$/ } var expMatch = {}; expMatch.containsNumber = rgularExp.containsNumber.test(str); expMatch.containsAlphabet = rgularExp.containsAlphabet.test(str); expMatch.alphaNumeric = rgularExp.contains_alphaNumeric.test(str); expMatch.onlyNumbers = rgularExp.onlyNumbers.test(str); expMatch.onlyLetters = rgularExp.onlyLetters.test(str); expMatch.mixOfAlphaNumeric = rgularExp.onlyMixOfAlphaNumeric.test(str); return expMatch; } // HTML Element attribute's[id, name] with dynamic values. var id1 = "Yash", id2="777", id3= "Yash777", id4= "Yash777Image4" id11= "image5.64", id22= "55-5.6", id33= "image_Yash", id44= "image-Yash" id12= "_-."; console.log( "Only Letters:\n ", matchExpression(id1) ); console.log( "Only Numbers:\n ", matchExpression(id2) ); console.log( "Only Mix of Letters and Numbers:\n ", matchExpression(id3) ); console.log( "Only Mix of Letters and Numbers:\n ", matchExpression(id4) ); console.log( "Mixed with Special symbols" ); console.log( "Letters and Numbers :\n ", matchExpression(id11) ); console.log( "Numbers [-]:\n ", matchExpression(id22) ); console.log( "Letters :\n ", matchExpression(id33) ); console.log( "Letters [-]:\n ", matchExpression(id44) ); console.log( "Only Special symbols :\n ", matchExpression(id12) ); 

Coloque para fora:

 Only Letters: {containsNumber: false, containsAlphabet: true, alphaNumeric: true, onlyNumbers: false, onlyLetters: true, mixOfAlphaNumeric: false} Only Numbers: {containsNumber: true, containsAlphabet: false, alphaNumeric: true, onlyNumbers: true, onlyLetters: false, mixOfAlphaNumeric: false} Only Mix of Letters and Numbers: {containsNumber: true, containsAlphabet: true, alphaNumeric: true, onlyNumbers: false, onlyLetters: false, mixOfAlphaNumeric: true} Only Mix of Letters and Numbers: {containsNumber: true, containsAlphabet: true, alphaNumeric: true, onlyNumbers: false, onlyLetters: false, mixOfAlphaNumeric: true} Mixed with Special symbols Letters and Numbers : {containsNumber: true, containsAlphabet: true, alphaNumeric: false, onlyNumbers: false, onlyLetters: false, mixOfAlphaNumeric: false} Numbers [-]: {containsNumber: true, containsAlphabet: false, alphaNumeric: false, onlyNumbers: false, onlyLetters: false, mixOfAlphaNumeric: false} Letters : {containsNumber: false, containsAlphabet: true, alphaNumeric: false, onlyNumbers: false, onlyLetters: false, mixOfAlphaNumeric: false} Letters [-]: {containsNumber: false, containsAlphabet: true, alphaNumeric: true, onlyNumbers: false, onlyLetters: false, mixOfAlphaNumeric: false} Only Special symbols : {containsNumber: false, containsAlphabet: false, alphaNumeric: false, onlyNumbers: false, onlyLetters: false, mixOfAlphaNumeric: false} 

Combinação de padrões java com expressões regulares.

Esse código também ajuda em “Detectar números em determinada string” quando os números encontrados impedem sua execução.

 function hasDigitFind(_str_) { this._code_ = 10; /*When empty string found*/ var _strArray = []; if (_str_ !== '' || _str_ !== undefined || _str_ !== null) { _strArray = _str_.split(''); for(var i = 0; i < _strArray.length; i++) { if(!isNaN(parseInt(_strArray[i]))) { this._code_ = -1; break; } else { this._code_ = 1; } } } return this._code_; }