Maison  >  Article  >  interface Web  >  Comment créer une expression régulière qui n'accepte que des formules spéciales ?

Comment créer une expression régulière qui n'accepte que des formules spéciales ?

WBOY
WBOYavant
2023-09-16 19:33:031222parcourir

Comment créer une expression régulière qui naccepte que des formules spéciales ?

Les expressions régulières sont des modèles qui contiennent différents caractères. Nous pouvons utiliser des expressions régulières pour rechercher si une chaîne contient un modèle spécifique.

Ici, nous apprendrons à créer des expressions régulières pour vérifier diverses formules mathématiques. Nous utiliserons la méthode test() ou match() pour vérifier si une formule mathématique spécifique correspond à une expression régulière

Grammaire

Les utilisateurs peuvent suivre la syntaxe suivante pour créer des expressions régulières qui acceptent des formules mathématiques spéciales.

let regex = /^\d+([-+]\d+)*$/g; 

L'expression régulière ci-dessus n'accepte que 10 – 13 + 12 + 23, tout comme la formule mathématique.

Expression régulière expliquée

  • / / Il représente le début et la fin de l'expression régulière.

  • ^ Il représente le début de la chaîne de formule.

  • d+ Il représente au moins un ou plusieurs chiffres au début de la formule.

  • [-+] – Représente les opérateurs « + » et « - » dans les expressions régulières.

  • ([-+]d+)* signifie que la formule peut contenir des nombres, suivis de plusieurs opérateurs "+" ou "-".

  • $ Il représente la fin de la chaîne.

  • g – Il correspond à toutes les occurrences de l'identifiant.

Exemple

Dans l'exemple ci-dessous, nous avons créé une expression régulière qui accepte les formules contenant des opérateurs numériques "+" ou "-".

L'utilisateur peut constater que la première formule correspond au modèle d'expression régulière dans la sortie. La deuxième formule ne correspond pas au modèle d'expression régulière car elle contient l'opérateur « * ». De plus, la troisième formule est la même que la première, mais elle contient des espaces entre l'opérateur et le nombre, elle ne correspond donc pas à l'expression régulière.

<html>
<body>
   <h3>Creating the regular expression to validate special mathematical formula in JavaScript</h3>
   <div id = "output"></div>
   <script>
      let output = document.getElementById('output');
      function matchFormula(formula) {
         let regex = /^\d+([-+]\d+)*$/g;
         let isMatch = regex.test(formula);
         if (isMatch) {
            output.innerHTML += "The " + formula + " is matching with " + regex + "<br>";
         } else {
            output.innerHTML += "The " + formula + " is not matching with " + regex + "<br>";
         }
      }
      let formula = "10+20-30-50";
      matchFormula(formula);
      matchFormula("60*70*80");
      matchFormula("10 + 20 - 30 - 50")
   </script>
</body>
</html> 

Expression régulière utilisée dans l'exemple ci-dessous

Nous avons utilisé l'expression régulière /^d+(s*[-+*/]s*d+)*$/g dans l'exemple ci-dessous. Les utilisateurs peuvent trouver ci-dessous une explication des expressions régulières utilisées.

  • ^d+ Il représente au moins un chiffre au début de la formule.

  • s* Il représente zéro ou plusieurs espaces.

  • (s*[-+*/]s*d+)* signifie que la formule peut contenir des espaces, des opérateurs, des espaces et des nombres plusieurs fois dans le même ordre.

Exemple

Dans l'exemple ci-dessous, nous appelons la fonction TestMultiplyFormula() trois fois en passant diverses formules comme paramètres. Nous utilisons la méthode test() pour vérifier si la formule correspond au modèle d'expression régulière.

Dans le résultat, nous pouvons voir que l'expression régulière accepte les formules avec les opérateurs "*" et "/" ainsi que les espaces.

<html>
<body>
   <h2>Creating the regular expression <i> to validate special mathematical formula </i> in JavaScript.</h2>
   <div id = "output"> </div>
   <script>
      let output = document.getElementById('output');
      function TestMultiplyFormula(formula) {
         let regex = /^\d+(\s*[-+*/]\s*\d+)*$/g;
         let isMatch = regex.test(formula);
         if (isMatch) {
            output.innerHTML += "The " + formula + " is matching with " + regex + "<br>";
         } else {
            output.innerHTML += "The " + formula + " is not matching with " + regex + "<br>";
         }
      } 
      let formula = "12312323+454+ 565 - 09 * 23";
      TestMultiplyFormula(formula);
      TestMultiplyFormula("41*14* 90 *80* 70 + 90");
      TestMultiplyFormula("41*14& 90 ^80* 70 + 90");
   </script>
</body>
</html>

Ce tutoriel nous apprend à créer une expression régulière qui accepte une formule mathématique spéciale. Dans les deux exemples, nous avons utilisé la méthode test() pour faire correspondre une formule à une expression régulière. De plus, nous avons utilisé différents modèles d'expressions régulières dans les deux exemples.

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