¿Cómo clonar una expresión regular dada en JavaScript?

En este artículo, conoceremos Cómo clonar una expresión regular usando JavaScript. Podemos clonar una expresión regular dada usando el constructor RegExp().

La sintaxis de usar este constructor se ha definido de la siguiente manera:

Sintaxis:

new RegExp(regExp , flags)

Aquí regExp es la expresión que se va a clonar y las banderas determinan las banderas del clon. Hay principalmente tres tipos de banderas que se utilizan.

  • g: bandera global con esta bandera la búsqueda busca una coincidencia global.
  • i: con esta bandera, la búsqueda no distingue entre mayúsculas y minúsculas.
  • m: Con esta bandera realizamos coincidencias multilínea.

Veamos ahora cómo podemos clonar una expresión regular dada usando el constructor RegExp( ) en Javascript.

Ejemplo:-

HTML

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width" />
  
    <script src=
"https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js">
    </script>
    <title>Clone a given regular expression</title>
  </head>
  <body style="text-align: center">
    <p>Enter Regular Expression to clone</p>
  
    <input type="text" id="data" name="input" /><br />
    <button id="b1">Clone Regex</button>
    <div id="display"></div>
  
    <script>
      function cloneRegex(input, outputflag) {
        var pattern = input.source;
        const flags = [...new Set(input.flags + outputflag)].join("");
        // Using RegExp constructor to  for cloning regular expressions,
        // optionally while modifying flag also.
        return new RegExp(pattern, flags);
      }
  
      //Taking User data as input
      var d = $("#data").val();
  
      var regex = new RegExp(d, "i");
      //Passing user data to cloneRegex function with g set as flag.
      var clonedregex = cloneRegex(regex, "g");
  
      $("#b1").click(function () {
        $("#display").html("Cloned regex is as follows:-" + clonedregex);
      });
    </script>
  </body>
</html>

Salida 1:

Salida2:

Publicación traducida automáticamente

Artículo escrito por faizamu19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *