8 votes

Regex pour 1-10 en javascript pour la validation

Quelle serait la regex pour les nombres allant de 1 à 10 et de 1 à 5 ? Veuillez aider cette âme en peine.

11voto

marsbear Points 939

Vous pourriez y parvenir en vérifiant facilement les chiffres en javascript :

// Convert input to integer just to be sure
mynum = parseInt(mynum, 10);

// Check number-range
if(mynum >= 1 && mynum <=10)
and
if(mynum >= 1 && mynum <=5)

Si vous voulez vraiment utiliser le regex :

/^([1-9]|10)$/
and
/^[1-5]$/

UPDATE :

  • Correction de la première regex pour qu'elle corresponde correctement aux limites de la chaîne de caractères
  • Ajout de parseInt au premier exemple pour assurer une vérification correcte des nombres.

4voto

Jason McCreary Points 35919

Ce n'est pas une bonne utilisation des expressions régulières.

Utilisez des conditions simples :

if (x > 0 && x < 6) {
  // x is 1 - 5
}

if (x > 0 && x < 10) {
  // x is 1 - 10
}

3voto

mario Points 76989

Pour 1-5, il suffit de l'inclure dans la classe de caractères :

  /^[1-5]$/

Pour 1-10, il suffirait d'une alternative supplémentaire :

  /^([1-9]|10)$/

2voto

Tim Cooper Points 55292

Y a-t-il une raison pour laquelle vous souhaitez utiliser des expressions régulières ?

/([1-9]|10)/

1voto

KooiInc Points 38845

Utilisez la comparaison numérique. L'extension Nombre suivante permet de vérifier si un nombre se situe entre deux valeurs :

Number.prototype.between = 
  function(lower,upper, includeBoundaries){
    lower = Number(lower);
    upper = Number(upper);
    noCando = isNaN(lower) || 
              isNaN(upper) || 
              lower>=upper;
    if ( noCando ) {
      throw 'wrong arguments or out of range';
    }
    return includeBoundaries
           ? this >= lower && this <= upper
           : this > lower && this < upper
};
// usage:
(12).between(1,12); /=> false
(12).between(1,12,true); /=> true
(12).between(0,15,true); /=> true
(0).between(-5,1); //=> true

La fonction convertit les paramètres en nombre parce que 0 peut être évalué en booléen en javascript, pour pouvoir vérifier si les paramètres sont des valeurs réelles et pour pouvoir vérifier si lower n'est pas supérieur/égal à upper. Dans ces cas, une erreur est générée.

En includeBoundaries vérifie également si un nombre est égal à inférieur ou supérieur, s'il n'est pas fourni, la fonction renvoie un véritable contrôle "entre".

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