83 votes

Vérifier si l'entrée est un chiffre ou une lettre javascript

J'utilise des formulaires en HTML et en javascript. J'aimerais qu'une alerte apparaisse uniquement si l'utilisateur saisit un LETTRE et clique submit .

J'ai donc le code HTML :

<form name="myForm" action="" onsubmit="return checkInp()" method="post">
    First name: <input type="text" name="age">
<input type="submit" value="Submit">   

Et le code javascript :

function checkInp()
{
var x=document.forms["myForm"]["age"].value;
if (x consists of any letters) // this is the code I need to change
{
alert("Must input numbers");
return false;
}
}

134voto

Bat_Programmer Points 1670

Vous pouvez utiliser la fonction isNaN pour déterminer si une valeur n'est pas convertie en nombre. Exemple ci-dessous :

function checkInp()
{
  var x=document.forms["myForm"]["age"].value;
  if (isNaN(x)) 
  {
    alert("Must input numbers");
    return false;
  }
}

53voto

Kim Kling Points 721

Utilisation Expression régulière pour ne faire correspondre que des lettres. Il est également utile d'avoir des connaissances à ce sujet si vous devez faire quelque chose de plus compliqué, comme vous assurer qu'il s'agit d'un certain nombre de chiffres.

function checkInp()
{
    var x=document.forms["myForm"]["age"].value;
    var regex=/^[a-zA-Z]+$/;
    if (!x.match(regex))
    {
        alert("Must input string");
        return false;
    }
}

Il serait encore mieux de refuser tout ce qui n'est pas des chiffres :

function checkInp()
{
    var x=document.forms["myForm"]["age"].value;
    var regex=/^[0-9]+$/;
    if (x.match(regex))
    {
        alert("Must input numbers");
        return false;
    }
}

13voto

mael Points 2156

Vous pouvez utiliser le estNaN Fonction. Elle renvoie true si la donnée n'est pas un nombre. Ce serait quelque chose comme ça :

function checkInp()
{
    var x=document.forms["myForm"]["age"].value;
    if (isNaN(x)) // this is the code I need to change
    {
        alert("Must input numbers");
        return false;
    }
}

Note : isNan considère 10.2 comme un nombre valide.

8voto

Deepak Gangore Points 101

Vous pouvez utiliser isNaN(). cette fonction renvoie un résultat positif si les données ne sont pas des nombres.

var data = 'hello there';
if(isNaN(data)){
  alert("it is a valid number");
}else {
  alert("it is not a valid number");
}

6voto

Crypters Points 61

Il suffit de trouver le reste en divisant par 1, c'est-à-dire x%1. Si le reste est 0, cela signifie que x est un nombre entier. Sinon, vous devez afficher le message "Must input numbers". Cela fonctionne même dans le cas de chaînes de caractères, de nombres décimaux, etc.

function checkInp()
{
    var x = document.forms["myForm"]["age"].value;
    if ((x%1) != 0) 
    {
        alert("Must input numbers");
        return false;
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X