Vérifiez si Sring est un nombre en JavaScript

Hiten Kanwar 12 octobre 2023
  1. Utilisez la fonction isNaN() pour vérifier si une chaîne donnée est un nombre ou non en JavaScript.
  2. Utilisez l’opérateur + pour vérifier si une chaîne donnée est un nombre ou non en JavaScript.
  3. Utilisez la fonction parseInt() pour vérifier si une chaîne donnée est un nombre ou non en JavaScript.
  4. Utilisez la fonction Number() pour vérifier si une chaîne donnée est un nombre ou non en JavaScript.
  5. Utilisez les expressions régulières pour vérifier si une chaîne donnée est un nombre ou non en JavaScript
Vérifiez si Sring est un nombre en JavaScript

Le nombre dans le langage de programmation est le type de données qui représente les entiers, les flottants, etc. Les chaînes de caractères représentent tous les caractères plutôt que seulement des valeurs numériques. Les chaînes de caractères peuvent contenir des valeurs numériques.

Nous vérifierons si une chaîne donnée est un nombre ou non dans cet article.

Utilisez la fonction isNaN() pour vérifier si une chaîne donnée est un nombre ou non en JavaScript.

La fonction isNaN() signifie n'est pas un nombre. C’est une fonction intégrée de JavaScript utilisée pour déterminer si une valeur donnée n’est pas une valeur numérique, ce qui inclut à la fois les nombres réels et les chaînes numériques.

La fonction isNaN() renvoie true si la valeur n’est pas un nombre et false si c’est un nombre ou si elle peut être convertie en un nombre valide.

Voici la syntaxe de base de la fonction isNaN() :

isNaN(value)
  • valeur : La valeur que vous voulez vérifier si c’est un nombre. Cela peut être une variable, une constante ou une expression.

Exemple :

console.log(isNaN('195'))
console.log(isNaN('boo'))
console.log(isNaN('100px'))

Sortie :

false 
true
true

Si nous voulons créer une fonction qui renvoie true pour une valeur valide, nous pouvons toujours le faire en créant une fonction qui nie la sortie de la fonction isNaN().

function isNum(val) {
  return !isNaN(val)
}
console.log(isNum('aaa'));
console.log(isNum('13579'));
console.log(isNum('-13'));

Sortie :

false
true
true

Maintenant, cette fonction appelée isNum() renverra true pour une valeur numérique valide.

Gestion des chaînes numériques avec des décimales

La fonction isNaN() est polyvalente et peut également gérer les chaînes numériques avec des points décimaux. Par exemple :

const str = '3.14';  // La chaîne que nous voulons vérifier
const isNumeric = isNaN(str);

if (isNumeric) {
  console.log(`${str} n'est pas un nombre.`);
} else {
  console.log(`${str} est un nombre.`);
}

La sortie identifiera correctement '3.14' comme un nombre :

3.14 is a number.

Utilisez l’opérateur + pour vérifier si une chaîne donnée est un nombre ou non en JavaScript.

L’opérateur + en JavaScript sert à la fois à l’addition arithmétique et en tant qu’opérateur unaire de coercition de type.

Lorsqu’il est appliqué à des chaînes, l’opérateur + tente de les convertir en valeurs numériques. Si la chaîne peut être convertie avec succès en un nombre, le résultat sera une valeur numérique valide ; sinon, cela donnera NaN (N'est pas un nombre).

Par exemple,

console.log(+'195')
console.log(+'boo')

Sortie :

195
NaN

Utilisez la fonction parseInt() pour vérifier si une chaîne donnée est un nombre ou non en JavaScript.

La méthode parseInt() en JavaScript est utilisée pour analyser une chaîne et la convertir en un entier (un nombre entier). Elle lit la chaîne de gauche à droite jusqu’à ce qu’elle rencontre un caractère qui ne fait pas partie d’un entier valide, puis elle arrête l’analyse.

Voici la syntaxe de base pour utiliser parseInt() :

parseInt(string[, radix]);
  • chaine : La chaîne à analyser et à convertir en un entier.
  • base (facultatif) : Un entier entre 2 et 36 qui représente la base du système de numération utilisé dans la chaîne. Ce paramètre est facultatif et si omis, JavaScript suppose la base 10 (décimale).

Elle renvoie NaN lorsqu’elle est incapable d’extraire des nombres de la chaîne.

Par exemple,

console.log(parseInt('195'))
console.log(parseInt('boo'))

Sortie :

195
NaN

Gestion des chaînes numériques avec une base

La méthode parseInt() vous permet également de spécifier la base (radix) du système de numération utilisé dans la chaîne. Par exemple, vous pouvez analyser des nombres binaires (base 2), octaux (base 8) ou hexadécimaux (base 16).

Voici un exemple d’analyse d’une chaîne hexadécimale :

const chaineHex = '1A';                     // Chaîne hexadécimale
const valeurInt = parseInt(chaineHex, 16);  // Spécifie la base 16

if (isNaN(valeurInt)) {
  console.log(`${chaineHex} n'est pas un nombre.`);
} else {
  console.log(`${chaineHex} est un nombre.`);
}

Dans ce cas, la sortie identifiera correctement '1A' comme un nombre hexadécimal :

1A is a number.

Utilisez la fonction Number() pour vérifier si une chaîne donnée est un nombre ou non en JavaScript.

La fonction Number() convertit l’argument en un nombre représentant la valeur de l’objet. Si elle échoue à convertir la valeur en un nombre, elle renvoie NaN.

Nous pouvons également l’utiliser avec des chaînes pour vérifier si une chaîne donnée est un nombre ou non.

Par exemple,

console.log(Number('195'))
console.log(Number('boo'))

Sortie :

195
NaN

Utilisez les expressions régulières pour vérifier si une chaîne donnée est un nombre ou non en JavaScript

Une expression régulière, souvent appelée regex, est un motif qui spécifie un ensemble de chaînes. Elle peut être utilisée pour faire correspondre des motifs dans des chaînes, en en faisant un outil polyvalent pour des tâches telles que la validation des chaînes.

En JavaScript, vous pouvez créer des expressions régulières en utilisant soit le constructeur RegExp, soit en utilisant la notation littérale de regex entre des barres obliques, comme /motif/.

Nous pouvons utiliser de tels motifs pour vérifier si une chaîne contient un chiffre ou non.

Tout d’abord, nous devons définir un motif d’expression régulière qui correspond aux valeurs numériques. Nous pouvons créer un motif simple qui correspond aux entiers positifs et négatifs, ainsi qu’aux nombres décimaux :

const numberPattern = /^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$/;

Voici ce que ce motif fait :

  • ^ : Indique le début de la chaîne.
  • [-+]? : Correspond à un signe positif ou négatif facultatif.
  • [0-9]* : Correspond à zéro ou plusieurs chiffres avant le point décimal.
  • \.? : Correspond à un point décimal facultatif.
  • [0-9]+ : Correspond à un ou plusieurs chiffres après le point décimal.
  • ([eE][-+]?[0-9]+)? : Correspond à une partie exponentielle facultative, comme e-3 ou E+4.

Maintenant, appliquez la méthode test() du motif d’expression régulière à la chaîne. La méthode test() renvoie true si la chaîne correspond au motif et false sinon :

const isNumber = numberPattern.test(str);

Par exemple,

function isNumeric(val) {
  return /^-?\d+$/.test(val);
}

console.log(isNumeric('aaa'));
console.log(isNumeric('13579'));
console.log(isNumeric('-13'));

Sortie :

false
true
true

Article connexe - JavaScript String