Maison  >  Article  >  interface Web  >  Extraire les nombres d'une chaîne à l'aide de JavaScript

Extraire les nombres d'une chaîne à l'aide de JavaScript

WBOY
WBOYavant
2023-08-26 13:09:211658parcourir

使用 JavaScript 从字符串中提取数字

En JavaScript, il existe plusieurs façons d'extraire des nombres à partir de chaînes. Une solution consiste à utiliser la méthode match() et une expression régulière pour rechercher tous les nombres dans une chaîne. Une autre façon consiste à utiliser la méthode replace() et une expression régulière pour supprimer tous les caractères non numériques de la chaîne, ne laissant que les nombres.

Comprenons chaque méthode à l’aide de quelques exemples.

Utilisez la méthode match() et les expressions régulières

L'expression régulière est un modèle de recherche que nous pouvons créer en combinant plusieurs lettres et caractères spéciaux. Nous pouvons utiliser le modèle de recherche "/d+/" pour rechercher des nombres dans une chaîne. En mode de recherche 'd+', d représente un nombre compris entre 0 et 9 et '+' représente au moins un chiffre trouvé.

Nous pouvons donc utiliser cette expression régulière comme argument de la méthode de correspondance intégrée de JavaScript pour rechercher tous les nombres dans une chaîne donnée.

Grammaire

L'utilisateur peut extraire tous les nombres d'une chaîne donnée en suivant la syntaxe suivante.

let str = "Sampll323435 Stringrfd23232ftesd3454!";
let numbers = str.match('/\d+/');

Dans la syntaxe ci-dessus, nous avons utilisé la méthode match(), qui correspond à l'occurrence des nombres dans la chaîne donnée.

Exemple

Dans cet exemple, nous avons créé une chaîne contenant des nombres. Après cela, nous avons créé une expression régulière avec l'indicateur g pour correspondre à toutes les occurrences de nombres dans la chaîne et l'avons passée comme argument de la méthode match() pour correspondre dans la chaîne

La méthode

match() renvoie un tableau contenant tous les nombres basés sur la correspondance d'expressions régulières.

<html>
   <body>
      <h3>Using the <i> match () </i> Method and Regular Expression to extract the numbers from the string</h3>
      <div id = "output"> </div>
      <script>
         let output = document.getElementById("output");

         // defining the string containing the numbers
         let str = "Sampll323435 Stringrfd23232ftesd3454!";
         output.innerHTML = "Original String: " + str + "<br/>";

         // Matching for the numbers using the match() method.
         let numbers = str.match(/\d+/g);

         // numbers is an array of all occurrences of numbers
         
         // if any single number is available in the string, then print numbers
         if (numbers.length > 0) {
            output.innerHTML += "<br> Numbers in the StringL: " + numbers + "<br/>";
         }
      </script>
   </body>
</html>

Utilisez la méthode replace() et les expressions régulières

Nous pouvons utiliser des expressions régulières pour identifier les caractères numériques et autres caractères. Par conséquent, nous utiliserons des expressions régulières pour identifier d’autres caractères et les remplacerons par des chaînes vides. De cette façon, nous pouvons supprimer tous les caractères sauf les nombres et extraire les nombres de la chaîne.

Grammaire

Les utilisateurs peuvent utiliser la méthode replace() pour extraire les nombres d'une chaîne en suivant la syntaxe suivante.

let result = str.replace(/[^0-9]/g,"");

Dans la syntaxe ci-dessus, str est une chaîne entre guillemets à partir de laquelle nous voulons extraire un nombre. De plus, l'expression régulière [^0-9] représente tous les caractères sauf 0 à 9.

Exemple

Dans l'exemple ci-dessous, nous utilisons la méthode replace() pour remplacer tous les caractères sauf les caractères numériques par une chaîne vide. Nous passons l'expression régulière comme premier paramètre et la chaîne vide comme deuxième paramètre.

La méthode

replace() renvoie une chaîne après avoir remplacé tous les caractères sauf les caractères numériques par une chaîne vide. Dans la sortie, nous pouvons observer qu’elle ne renvoie pas de tableau comme la méthode match(), mais ne renvoie qu’une seule chaîne.

<html>
   <body>
      <h3>Using the <i> replace() </i> method and regular expression to extract the numbers from the string</h3>
      <div id = "output"> </div>
      <script>
         let output = document.getElementById("output");
         let string = "dnbdj53454 4k54k6j23in k09e30n9923g9 kjm545";
         output.innerHTML = "Original String: " + string + "<br/>";

         // replace all non-numeric characters with empty string
         let result = string.replace(/[^0-9]/g, "");
         output.innerHTML +="<br> Numbers in the string: " + result + "<br/>";
      </script>
   </body>
</html>

Extraire les nombres d'une chaîne à l'aide de la méthode réduire()

reduce() est une méthode de bibliothèque intégrée de JavaScript. Nous pouvons convertir une chaîne en tableau de caractères et utiliser la méthode réduire() sur un tableau de caractères. La méthode réduire() nous aide à réduire un tableau à un seul élément en effectuant des opérations sur les éléments du tableau.

Ici, nous allons vérifier si le caractère est un nombre et l'ajouter à l'élément final ; sinon, nous ajouterons une chaîne vide.

Grammaire

Les utilisateurs peuvent utiliser la méthode réduire() pour extraire les nombres des chaînes selon la syntaxe ci-dessous.

let charArray = [...string];
let numbers = charArray.reduce(function (numString, element) {
   let nums = "0123456789";
   if (nums.includes(element)) {
      return numString + element;
   }
   return numString;
},"");

Dans la syntaxe ci-dessus, nous utilisons la méthode réduire avec charArray. Nous passons la fonction de rappel comme premier paramètre et la chaîne vide comme deuxième paramètre.

Algorithme

  • Étape 1 - Convertissez la chaîne en un tableau de caractères à l'aide de l'opérateur spread.

  • Étape 2 - Utilisez la méthode réduire() de charArray pour réduire l'ensemble du tableau en une seule chaîne contenant uniquement des nombres.

  • Étape 3 - Passez la fonction de rappel comme premier paramètre de la méthode réduire(), qui renvoie la chaîne réduite

  • Étape 4 - Dans la fonction de rappel, transmettez numString comme premier paramètre, qui est une chaîne simplifiée, et element comme deuxième paramètre, qui est un élément de tableau qui représente la chaîne de caractères de la chaîne.

  • Étape 5 - Dans la fonction de rappel, vérifiez si les caractères du tableau signifient que l'élément est compris entre 0 et 9. Si tel est le cas, le caractère est ajouté à numString et renvoyé sinon, numString est renvoyé inchangé.

  • Étape 6 - Passez une chaîne vide comme deuxième paramètre de la méthode réduire(), qui est la valeur initiale de numString.

  • Étape 7 - Après une itération complète du tableau, la méthode réduire() renvoie la valeur finale de numString.

Exemple

Dans l'exemple ci-dessous, nous avons pris une chaîne contenant des nombres et implémenté l'algorithme ci-dessus pour extraire les nombres de la chaîne.

<html>
   <body>
      <h3>Using the <i>reduce() </i>method to extract the numbers from the string</h3>
      <div id = "output"> </div>
      <script>
         let output = document.getElementById("output");
         let string = "34gr345fr45";
         output.innerHTML += "Original String: " + string + "<br/>";
         let charArray = [...string];
         let numbers = charArray.reduce(function (numString, element) {
            let nums = "0123456789";
            if (nums.includes(element)) {
               return numString + element;
            }
            return numString;
         }, "");
         output.innerHTML +="<br> Number in the String: " + numbers + "<br/>";
      </script>
   </body>
</html>

在本教程中,我们讨论了从给定字符串中提取数字的三种方法。第一种方法是使用 match() 方法和正则表达式来搜索字符串中的所有数字。第二种方法使用 replace() 方法和正则表达式从字符串中删除所有非数字字符,只留下数字。第三种方法是使用reduce()includes()方法。仔细考虑哪种方法最适合特定情况非常重要。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer