NewIntroducing QODEX QA Services — platform-powered QA for API-driven teams.Learn more →
Validateur regex JavaScript pour les nombres

Validateur regex JavaScript pour les nombres

Utilisez le Validateur regex JavaScript pour les nombres pour vérifier des patterns d'entiers, de décimaux et de nombres signés ou formatés. Que vous construisiez des formulaires ou des outils financiers, le regex est un moyen efficace de garantir la précision des données. Explorez également notre Testeur regex JavaScript pour déboguer vos patterns en direct, ou combinez-le avec le Générateur de tokens pour l'authentification numérique, et le Décodeur Base64 pour décoder des valeurs avant validation.

Validateur regex JavaScript pour les nombres - Documentation

Qu'est-ce que le regex pour les nombres ?

En JavaScript, les expressions régulières (regex) sont souvent utilisées pour valider et faire correspondre des entrées numériques telles que les nombres entiers, les décimaux et les valeurs formatées comme les devises. C'est particulièrement utile dans les formulaires, les calculs financiers et la validation des entrées où la structure des données numériques est importante.

Le regex JavaScript fournit des patterns concis pour distinguer les nombres valides et rejeter toute entrée inattendue, comme des lettres ou une ponctuation mal formée.

Patterns regex pour la validation des nombres

  1. Validation d'entier

    Valide les nombres entiers sans symboles ni points décimaux.

    const regex = /^\d+$/;

    Correspond : "123", "2024"

    Ne correspond pas : "12.3", "-100"

  2. Validation de nombre décimal

    Valide les nombres avec des décimales optionnelles.

    const regex = /^\d+\.\d+$/;

    Correspond : "3.14", "99.999"

    Ne correspond pas : "100", "abc"

  3. Validation de nombre signé

    Autorise un signe négatif ou positif optionnel.

    const regex = /^[+-]?\d+(\.\d+)?$/;

    Correspond : "-45", "+99.99", "0"

    Ne correspond pas : "--12", "100+"

  4. Nombres formatés avec virgules

    Correspond aux nombres comme 1,000 ou 12,345,678.

    const regex = /^\d{1,3}(,\d{3})*$/;

    Correspond : "1,000", "100,000"

    Ne correspond pas : "1000", "1,,000"

Comment valider des nombres en JavaScript

Utilisez la classe RegExp intégrée ou les littéraux regex avec des méthodes comme .test() ou .match() :

const number = "12345";
const pattern = /^\d+$/;

console.log(pattern.test(number)); // true

La méthode test() effectue une recherche de correspondance entre votre expression régulière et une chaîne donnée. Elle retourne true si le pattern correspond ; sinon, elle retourne false. C'est un moyen efficace de vérifier rapidement si la saisie d'un utilisateur respecte un format spécifique.

La méthode retourne une valeur booléenne :

  • true si le pattern correspond

  • false dans le cas contraire

Cela diffère de la méthode search(), qui retourne l'index de la correspondance (ou -1 si aucune correspondance n'est trouvée).

En résumé :

  • Utilisez test() pour simplement vérifier si une correspondance existe et obtenir un résultat true ou false.

  • Si vous avez besoin de savoir dans la chaîne se trouve la correspondance, utilisez search() à la place.

Vous pouvez tester votre regex personnalisé avec notre Testeur regex JavaScript interactif.

Comportement de test() avec un regex global et différentes chaînes

Lorsque vous utilisez la méthode test() avec un regex ayant le drapeau global (g), le regex maintient une propriété lastIndex entre les appels successifs. Si test() trouve une correspondance, lastIndex avance jusqu'à la position qui suit la correspondance. Si test() échoue, lastIndex se réinitialise à 0.

Conseil : si vous réutilisez le même objet regex global sur plusieurs chaînes différentes, réinitialisez lastIndex à 0 avant chaque nouveau test, ou évitez le drapeau global sauf si vous en avez réellement besoin.

const regex = /\d+/g;

regex.test("123"); // true (lastIndex now at 3) regex.test("456"); // true (lastIndex now at 3) regex.test("789"); // true (lastIndex now at 3) regex.test("abc"); // false (lastIndex resets to 0)

Quand utiliser test(), exec() ou match()

Pour une vérification rapide oui/non, utilisez .test(). Si vous avez besoin d'informations détaillées sur la correspondance ou l'extraction de groupes de capture, utilisez .exec() ou .match().

const regex = /^\d+$/;
console.log(regex.test("12345")); // true

// Pour extraire des détails : const match = pattern'exec'; if (match) { console.log("Matched:", match[0]); }

En résumé :

  • Utilisez .test() pour une validation simple oui/non.

  • Utilisez .exec() ou .match() lorsque vous avez besoin des détails ou des valeurs extraites.

Métacaractères utilisés

  • ^ : début de chaîne

  • $ : fin de chaîne

  • \d : tout chiffre [0-9]

  • + : un ou plusieurs du précédent

  • * : zéro ou plusieurs du précédent

  • ? : optionnel (zéro ou un)

  • . : point échappé pour les décimaux

  • [,] : virgule littérale

  • () : groupement

  • [] : classe de caractères

Exemples

Exemple 1 : valider un entier

const input = "250";
const pattern = /^\d+$/;

console.log(pattern.test(input)); // true

Créez vos propres patterns avec le Testeur regex JavaScript.

Exemple 2 : valider un nombre décimal

const input = "3.1415";
const pattern = /^\d+.\d+$/;

console.log(pattern.test(input)); // true

Combinez-le avec le Générateur de tokens pour générer automatiquement des nombres sécurisés.

Exemple 3 : détecter les nombres signés et non signés

const input = "-0.99";
const pattern = /^[+-]?\d+(.\d+)?$/;

console.log(pattern.test(input)); // true

Utilisez-le avec le Testeur regex JavaScript pour un débogage rapide.

Cas d'utilisation

  • Validation de formulaires : Utilisez le regex pour garantir que les utilisateurs saisissent des nombres valides dans des champs comme l'âge, la quantité et le budget.

  • Applications financières : Validez la précision décimale dans les transactions et les prix.

  • Nettoyage de données : Filtrez les mauvaises entrées avant de les importer dans des outils d'analyse.

  • Systèmes d'authentification : Utilisez le regex pour traiter les OTP numériques et les tokens de connexion générés via le Générateur de tokens.

Conseils avancés

  • Utilisez le Validateur regex Go pour les nombres ou le Validateur regex Java pour les nombres pour la vérification côté serveur des entrées numériques.

  • Utilisez le Décodeur Base64 si vos données numériques sont encodées avant la validation.

  • Combinez avec le Générateur de tokens si vous construisez des systèmes d'authentification numériques comme les OTP.

  • Évitez d'accepter parseFloat() comme validation : ce n'est pas strict et peut permettre à des chaînes invalides comme "123abc" de passer partiellement.

  • Désinfectez toujours les entrées numériques en parallèle de la validation regex pour prévenir les risques d'injection ou de formatage malformé.

Outils complémentaires

Frequently Asked Questions

Le regex peut-il détecter à la fois les nombres positifs et négatifs ?

Oui, ^[+-]?\d+(\.\d+)?$ autorise les entiers et décimaux signés.

Comment valider un nombre qui peut avoir ou non des décimales ?

Utilisez ^\d+(\.\d+)?$, il accepte les entiers et les décimaux.

Dois-je valider les valeurs monétaires avec regex ?

Le regex peut valider le format (ex. virgules et décimales), mais envisagez une logique supplémentaire pour les symboles monétaires et les limites.

\d correspond-il uniquement aux chiffres ?

Oui, il correspond à [0-9]. C'est équivalent mais plus concis.

Le regex JavaScript peut-il valider des nombres formatés comme "1,000" ?

Oui, utilisez un pattern comme /^\d{1,3}(,\d{3})*$/ pour faire correspondre les formats avec séparateur de milliers.

Testez vos API dès aujourd'hui !

Rédigez en langage naturel, Qodex génère des tests sécurisés et prêts à l'emploi.