Je cherche à créer une nouvelle fonction qui validera le champ mais permettra des nombres négatifs et positifs par exemple = / - 999,99. Quelqu'un aurait-il une solution rapide et facile? Merci

function validateNumber(thenumber){
    try{
        validnumbers = "0123456789.,";
    valid = false;
    for(i=0;i<thenumber.length;i++){
       if (validnumbers.indexOf(thenumber.charAt(i)) == -1)
       {
          valid = false;
          break;
       }
       else
          valid = true;
    }
    return valid;
    }catch(e){}
   }
0
topcat3 20 juil. 2015 à 17:43

5 réponses

Meilleure réponse

Et cette fonction simple?

function validateNumber(thenumber)
{
    thenumber = thenumber.replace(".", "").replace(",", ".");

    return !isNaN(thenumber);
}

Violon

La fonction supprime les points puis remplace la virgule par des points. Ensuite, il utilise isNaN avec négation pour renvoyer si son valide ou non. Vous souhaiterez peut-être ajouter une vérification si thenumber est une chaîne pour éviter les erreurs d'exécution.

7
DontVoteMeDown 20 juil. 2015 à 14:47

Essaye ça:

function isNumber(value) {
  value = value.replace(',', '.');
  return !isNaN(value);
}

function isNegative(value) {
  return (isNumber(value) && value<0);
}

function isPositive(value) {
  return (isNumber(value) && value>0);
}

Et en bonus (:

function isNumberWithDots(value) {
  value = value.split(',').join('').split('.').join('');
  return !isNaN(value);
}
0
num8er 20 juil. 2015 à 15:07

Essayez cette expression:

(number < 0)

Il sera évalué par JavaScript en essayant d'abord de convertir le côté gauche en une valeur numérique.

De plus amples détails peuvent être trouvés ici:

Nombre négatif Javascript

Inversement, cette expression:

(number > 0)

Sera évalué par JavaScript de la même manière.

0
Community 23 mai 2017 à 12:31

Je pense que la meilleure façon de le faire est d'utiliser des expressions régulières: la méthode search () utilise une expression pour rechercher une correspondance et retourne la position de la correspondance (retour -1 dans les autres cas). Voici un exemple:

public function validNumber(number)
{
    return number.search("^[+-]?[0-9]{1,9}(?:\.[0-9]{1,2})?$") > 0;
}
1
Oscar Acevedo 20 juil. 2015 à 15:23

Utilisez isNaN

function validateNumber(thenumber){
    return !isNaN(thenumber);
   }

isNaN renverra false pour les nombres positifs et négatifs

2
AmmarCSE 20 juil. 2015 à 14:53